在Python,Python的類型錯誤不受支持的操作數類型
logging.info('Followers: %d ', sum([a[1] for a in total]))
,其中sum
是整數並且是total
整數list comprehension
。我得到這個,
TypeError: unsupported operand type(s) for +: 'int' and 'str'
??不知道,爲什麼?
在Python,Python的類型錯誤不受支持的操作數類型
logging.info('Followers: %d ', sum([a[1] for a in total]))
,其中sum
是整數並且是total
整數list comprehension
。我得到這個,
TypeError: unsupported operand type(s) for +: 'int' and 'str'
??不知道,爲什麼?
錯誤的意思是a[1]
從列表返回total
是string
以及integers
。
例如。
In [9]: lis=[1,'foo',3]
In [10]: sum(lis)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
爲[(123243, 3), (24532, 5)]
您的代碼工作正常:
In [17]: lis=[(123243, 3), (24532, 5)]
In [18]: 'Followers: %d '%sum([a[1] for a in lis])
Out[18]: 'Followers: 8 '
@ acjohnson55 - 因此總數[[(123243,3),(24532,5)]例如,沒有字符串... – NullException
lis可能只包含字符串,仍會引發相同的TypeError和消息。 – XORcist
@KuriousMind打印類型(a [1])來測試您的假設 – XORcist
是總表的名單?如果不是,你不應該在列表理解中使用'a'。你能提供一個「total」打印嗎?這會使問題清楚。 – acjay
'sum'不是一個整數;這是一個功能。 「總數」不是對整數的列表理解;這是一個列表清單。 – melpomene
@melpomene它是一個可迭代的iterable。 – XORcist