List 关于Python2.x的一些问题

List 关于Python2.x的一些问题,list,typeerror,indices,List,Typeerror,Indices,我对这本词典有些问题 这是我的代码: tyler = { "name": "Tyler", "homework": [0.0, 87.0, 75.0, 22.0], "quizzes": [0.0, 75.0, 78.0], "tests": [100.0, 100.0] } def average (number): total = 0.0 for i in number: total = total + number[i]

我对这本词典有些问题 这是我的代码:

tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}


def average (number):
    total = 0.0
    for i in number:
        total = total + number[i]
    return total/ len(number)

def get_average(student):
        return average(student["homework"])*0.1 + average(student["quizzes"])*0.3 + average(student["tests"])*0.6

print get_average(tyler)
错误:
TypeError:列表索引必须是整数,而不是浮点


有人能帮忙吗?

问题在于您的
平均值功能:

for i in number:
    total = total + number[i]
def average(number):
    return float(sum(number))/len(number)
在这个循环中,
i
被设置为
number
数组中的每个值,而不是索引

您的循环可以是:

for i in number:
    total = total + i
同样,这是python,而不是
for
循环,您可以只使用
sum()
函数:

for i in number:
    total = total + number[i]
def average(number):
    return float(sum(number))/len(number)

我在下面贴了一个答案。您可能希望阅读SO问题中的代码格式,以使其更易于阅读(尽管我看到Haedrian现在已经为您完成了这项工作…),而且,您的标题没有说明问题的内容。