在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