我正在做作业,我写了下面的代码,它完成了我想要它做的事情:
A = [10, 25, 40]
B = [1, 15, 20]
R = [a + b for (a,b) in zip(A,B)]
print(R)
>>> [11, 40, 60]
但是,当我将 a + b
更改为 sum(a,b)
时,出现错误:
A = [10, 25, 40]
B = [1, 15, 20]
R = [sum(a,b) for (a,b) in zip(A,B)]
print(R)
>>> ... TypeError: 'int' object is not iterable
我知道这看起来像一个愚蠢的问题,但我搜索了一下却找不到答案。我对 Python 比较陌生,所以不太了解发生了什么。我正在尝试遍历使用 zip()
生成的生成器对象,并且该对象绝对不是 'int'
类型。
最佳答案
sum
takes an iterable as a parameter .您应该执行以下操作:
R = [sum([a,b]) for (a,b) in zip(A,B)]
如果您只有两个元素,请坚持使用 +
运算符。与更直观的简单 a + b
相比,sum
函数增加了一些噪音和少量开销。
关于python - 在列表理解中使用 sum() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29510393/