zip函数帮助元组

发布于 2021-01-29 17:43:00

我希望有人可以帮助我解决我遇到的问题。我有大量的元组(> 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)

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

Asum = 16  
Bsum = 7  
Csum = 13  
Dsum = 21  
有人可以帮

忙吗?非常感谢你花时间陪伴。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    >>> 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返回一个懒惰的可迭代对象,您可以随时将其像其他任何可迭代对象一样显式地转换为列表:list(zip(…))



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看