我希望有人可以帮助我解决我遇到的问题.我有大量的元组(> 500),如下所示:
(2,1,3,6)
(1,2,5,5)
(3,0,1,6)
(10,1,1,4)
(0,3,3,0)
Run Code Online (Sandbox Code Playgroud)
我的代码片段为:
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)
Run Code Online (Sandbox Code Playgroud)
我意识到上面的代码不正确.我试图找到一种方法将所有值A加在一起,B的所有值,C的所有值以及D的所有值一起使用zip函数.例如,我想打印一些如下所示的内容:
Asum = 16
Bsum = 7
Csum = 13
Dsum = 21
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?非常感谢你花时间陪伴.
nin*_*cko 14
>>> 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]
Run Code Online (Sandbox Code Playgroud)
要使用任意大的元组集来执行此操作:
>>> myTuples = [(1,2,3), (10,20,30), (100,200,300)]
>>> [sum(x) for x in zip(*myTuples)]
[111, 222, 333]
Run Code Online (Sandbox Code Playgroud)
旁注:在python3中,请注意zip返回一个惰性迭代,你总是可以显式地变成一个列表,就像任何其他类型的iterable:list(zip(...))
(感谢Seganku在编辑中捕获错误,其中编辑被其他编辑拒绝了三次)