如何解决在地图中使用带有两个迭代器的sum
我尝试使用map和sum计算两个列表中每个数字的总和。最后我得到一个整数。
a = [1,2,3,4]
b = [2,4,5]
answer = list(map(sum,a,b))
>>> TypeError: 'int' object is not iterable
a = [1,5]
answer = list(map(lambda x,y : x + y,b))
是什么原因?地图函数中sum的行为是什么?
解决方法
在每次迭代中,它将像play/pause
一样工作,并抛出该错误:
sum(1,2)
>>> sum(1,2)
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
TypeError: 'int' object is not iterable
等效于lambda x,y: x + y
:
operator.add
,
EDIT operator.add
可能正是您想要的(请参见上面的答案)
sum(可迭代,/,start = 0)
总和从左至右开始,并迭代一个项目,并返回总计。可迭代项通常是数字,并且起始值不允许为字符串。
sum并没有达到您的期望。您可以创建自己想要的总和来实现自己的目标:
def mysum(*args): return sum(args)
print(mysum(1,2,3,4,5)) # 15
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。