python – zip函数帮助元组

我希望有人可以帮助我解决我遇到的问题.我有大量的元组(> 500),如下所示:

(2,1,3,6)  
(1,2,5,5)  
(3,0,1,6)  
(10,1,1,4)  
(0,3,3,0)  

我的代码片段为:

sum1 = (A,B,C,D) # creates a tuple of sums of (A,B,C,D)  
mysum = map(sum, zip(A, B, C, D))
print(mysum)

我意识到上面的代码不正确.我试图找到一种方法将所有值A加在一起,B的所有值,C的所有值以及D的所有值一起使用zip函数.例如,我想打印一些如下所示的内容:

Asum = 16  
Bsum = 7  
Csum = 13  
Dsum = 21  

有人可以帮忙吗?非常感谢你花时间陪伴.

>>> zip((1,2,3),(10,20,30),(100,200,300))
[(1, 10, 100), (2, 20, 200), (3, 30, 300)]

>>> [sum(x) for x in zip((1,2,3),(10,20,30),(100,200,300))]
[111, 222, 333]

要使用任意大的元组集来执行此操作:

>>> myTuples = [(1,2,3), (10,20,30), (100,200,300)]
>>> [sum(x) for x in zip(*myTuples)]
[111, 222, 333]

旁注:在python3中,请注意zip返回一个惰性迭代,你总是可以显式地变成一个列表,就像任何其他类型的iterable:list(zip(…))

(感谢Seganku在编辑中的示例中捕获错误,其中三次被其他编辑拒绝)

翻译自:https://stackoverflow.com/questions/5693559/zip-function-help-with-tuples

转载注明原文:python – zip函数帮助元组