2012-12-14 166 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

相关问题