2012-12-14 54 views
0

在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' ??不知道,爲什麼?

+0

是總表的名單?如果不是,你不應該在列表理解中使用'a'。你能提供一個「total」打印嗎?這會使問題清楚。 – acjay

+1

'sum'不是一個整數;這是一個功能。 「總數」不是對整數的列表理解;這是一個列表清單。 – melpomene

+1

@melpomene它是一個可迭代的iterable。 – XORcist

回答

1

錯誤的意思是a[1]從列表返回totalstring以及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 ' 
+0

@ acjohnson55 - 因此總數[[(123243,3),(24532,5)]例如,沒有字符串... – NullException

+0

lis可能只包含字符串,仍會引發相同的TypeError和消息。 – XORcist

+0

@KuriousMind打印類型(a [1])來測試您的假設 – XORcist

相關問題