Skip to content Skip to sidebar Skip to footer

How Can I Add The Corresponding Elements Of Several Lists Of Numbers?

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 the lists that I'm using are the same lengt

Solution 1:

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:

(You can just call list).

Solution 2:

>>>lis=[[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]]>>>[sum(x) for x inzip(*lis)]
[6, 9, 12, 15, 18]

Solution 3:

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 inzip(*[a, b, c])]

Solution 4:

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])

Solution 5:

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))

Post a Comment for "How Can I Add The Corresponding Elements Of Several Lists Of Numbers?"