【问题标题】:Some problems about Python 2.x关于 Python 2.x 的一些问题
【发布时间】:2013-09-03 23:12:57
【问题描述】:

我对字典有一些问题 这是我的代码:

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

谁能帮忙?

【问题讨论】:

  • 已在下面发布了答案。您可能想阅读如何在 SO 问题中格式化代码以使其更易于阅读(尽管我看到 Haedrian 现在已经为您完成了......)此外,您的标题没有说明问题是关于什么的.

标签: list typeerror indices


【解决方案1】:

问题出在您的average 函数中:

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

在这个循环中,i 被设置为number 数组中的每个值,而不是索引。

您的循环可能只是:

for i in number:
    total = total + i

同样,这是 python,而不是 for 循环,您可以只使用 sum() 函数:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 2012-03-31
    • 2021-10-12
    • 2018-05-24
    • 2013-07-07
    • 2013-05-10
    • 2012-03-18
    相关资源
    最近更新 更多