2013-08-31 24 views
0

我对字典 这里我的代码一些问题存在一些问题:有关Python 2.x的

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: list indices must be integers, not float

谁能帮助?

+0

已经张贴下面的答案。您可能需要阅读如何在SO问题中对代码进行格式设置,以使其更易于阅读(尽管我现在看到Haedrian已经为您做了这件事......)另外,您的标题没有提供有关问题的说明。 – knolleary

回答

0

的问题是在你的average功能:

for i in number: 
    total = total + number[i] 

在这个循环中,inumber阵列,而不是索引中被设置为每个值。

你的循环可能仅仅是:

for i in number: 
    total = total + i 

同样,这是蟒蛇,而不是for循环,你可以只使用sum()功能:

def average(number): 
    return float(sum(number))/len(number)