【发布时间】:2021-10-09 19:30:15
【问题描述】:
def calculate_average_rating(input):
final = {}
for key in input.keys():
avg = sum(input[key])/len(input[key])
final[key] = avg
return final
我的代码打算取一个字典输入,“狮子王(2019)”:[6.0,7.5,5.1],“泰坦尼克号(1997)”:[7],并计算每个分数的平均值电影并以字典形式返回。例如:“蜘蛛侠(2002)”:[3,2,4,5]} ==> {“蜘蛛侠(2002)”:3.5
我得到的错误是
TypeError Traceback (most recent call last)
<ipython-input-134-8a09678d0016> in <module>
----> 1 calculate_average_rating(ratingData)
<ipython-input-133-3a0eaee00f3b> in calculate_average_rating(input)
2 final = {}
3 for key in input.keys():
----> 4 avg = sum(input[key])/len(input[key])
5 final[key] = avg
6 return final
TypeError: unsupported operand type(s) for +: 'int' and 'str'
【问题讨论】:
-
不要使用
input作为变量名——它是一个内置的python -
即使更改输入名称仍然没有改变任何东西
-
也许 dict 条目中的某些评分是
str类型,而不是float或int? -
'Toy Story (1995)': ['4.0', '4.0', '4.5', '2.5', '4.5', '3.5'], 'Jumanji (1995)': [ '4.0', '4.0', '3.0', '3.0', '3.0', '3.5'],这是我的输入
-
嘿,等一下,你说你的输入是:
"The Lion King (2019)" : [6.0, 7.5, 5.1]
标签: python python-3.x dictionary