使用字典键和TypeError进行计算

时间:2017-05-05 06:51:10

标签: python-3.x

我有一本字典,格式是

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:'

请帮忙......

1 个答案:

答案 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的声明(密钥)。