How can I add the corresponding elements of several lists of numbers?

前端 未结 6 1844
暖寄归人
暖寄归人 2020-12-03 07:38

I have some lists of numbers:

[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 4, 5, 6, 7]

How can I add these lists\' elements, assuming that all of th

相关标签:
6条回答
  • 2020-12-03 08:21

    How about:

    a = [1,2,3,4,5]
    b = [2,3,4,5,6]
    c = [3,4,5,6,7]
    
    s = map(sum, zip(a,b,c))
    
    0 讨论(0)
  • 2020-12-03 08:22

    Using numpy:

    >>> seq = np.array([
    ... [1,2,3,4,5],
    ... [2,3,4,5,6],
    ... [3,4,5,6,7]])
    >>> np.sum(seq,axis=0)
    array([ 6,  9, 12, 15, 18])
    
    0 讨论(0)
  • 2020-12-03 08:24

    Try this functional style code:

    >>> map(sum, zip(*lists))
    [6, 9, 12, 15, 18]
    

    The zip function matches elements with the same index.

    >>> zip(*lists)
    [(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7)]
    

    Then sum is applied to each tuple by using map.

    See it working online: ideone


    Note that in Python 3.x, map no longer returns a list. If you need the list, please see the following question:

    • Getting a map() to return a list in Python 3.x

    (You can just call list).

    0 讨论(0)
  • 2020-12-03 08:25

    Assuming:

    a = [1,2,3,4,5]
    b = [2,3,4,5,6]
    c = [3,4,5,6,7]
    

    just do this:

    [sum(n) for n in zip(*[a, b, c])]
    
    0 讨论(0)
  • 2020-12-03 08:33
    >>> lis=[[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]]
    
    >>> [sum(x) for x in zip(*lis)]
    [6, 9, 12, 15, 18]
    
    0 讨论(0)
  • 2020-12-03 08:34

    This one works for lists with various length too(nested only 1 time).

    def sum_list_of_list_of_int(ll):
        l=[]
        for i in ll:  # "i" type is list
            for ii in range(len(i)):  # "ii" type is int
                if len(l)-1>=ii:
                    l[ii]+=int(i[ii])
                else:
                    l.append(int(i[ii]))
        return l
    
    0 讨论(0)
提交回复
热议问题