我有一本字典,格式是
key1: [list of number]
key2: [list of number]
等等......
键是一个数字,其中key1< key2<等...
我正在尝试选择所有最后的n
列表,我想计算它。
x = 0
for something in dict:
if something >= max(dict.keys()) - n:
x += sum(dict[something]) // len(dict[something])
但我得到了:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
and it said the error come from the 'if something >= max(dict) - n:'
请帮忙......
答案 0 :(得分:0)
您似乎有不匹配的类型。例如,假设您有以下表达式
1 - '1'
Python会理所当然地抱怨。
TypeError: unsupported operand type(s) for -: 'int' and 'str'
因为第一个操作数是整数,而seconde是一个字符串。
还要记住
dict = {'1':[1,2,3,5,6], '2':[7,8,9,10,11]}
与
不同dict = {1:[1,2,3,5,6],2:[7,8,9,10,11]}
在第一种情况下,键是字符串类型,在seconde中是整数。
使用您的代码可以测试它
type(max(dict.keys()))
将输出str
,它将输出int
。
因此,您的操作数不具有相同的类型,它们必须都是整数才能继续计算。我正在邀请错误来自max(dict.keys()) - n
。您应该仔细检查dict
的声明(密钥)。