x=[1,2,5] y=[2,3,9] 我怎样才能得到结果 22?
我的代码有类型错误。
我认为您想要内置sum
功能。
>>> x = [1,2,5]
>>> y = [2,3,9]
>>> sum(x+y)
22
这与以下内容相同:
sum(x) + sum(y)
或者如果你喜欢 itertools:
sum(itertools.chain(x,y))
后两者效率更高。
sum
接受一个迭代并总结它的所有元素。在处理列表+
连接时,因此:
x+y
给你清单:
[1,2,5,2,3,9]
这是可迭代的,因此是sum
.
如果你有一大堆列表,你可以让它变得更有趣:
>>> lists = [x,y]
>>> sum(sum(lst) for lst in lists)
22
最后一种形式很好,因为它可以微不足道地扩展到任意数量的列表 - 只需继续将它们附加到lists
列表中,直到您准备好求和,然后将 1-liner 放入其中,然后就完成了。
当然,我想我们也可以用 itertools 做同样的事情:
sum(itertools.chain.from_iterable(lists))
如您所见,您有很多选择可以玩(并从中学习!:)。
>>> list1 = [1,2,5]
>>> list2 = [2,3,9]
>>> zip_list = [(x + y) for x, y in zip(list1, list2)]
>> zip_list
[3, 5, 14]
>>> sum(zip_list)
22
sm=0
for v in x+y:
sm=sm+v