How to sum lists together in python

The zip function is useful here, used with a list comprehension.

[x + y for x, y in zip(first, second)]

If you have a list of lists (instead of just two lists):

lists_of_lists = [[1, 2, 3], [4, 5, 6]]
[sum(x) for x in zip(*lists_of_lists)]
# -> [5, 7, 9]

answered Dec 27, 2012 at 7:12

8

From docs

import operator
list(map(operator.add, first,second))

How to sum lists together in python

answered Dec 27, 2012 at 7:29

How to sum lists together in python

Thai TranThai Tran

9,6657 gold badges41 silver badges62 bronze badges

1

Default behavior in numpy.add (numpy.subtract, etc) is element-wise:

import numpy as np
np.add(first, second)

which outputs

array([7,9,11,13,15])

mirekphd

3,26025 silver badges44 bronze badges

answered Apr 28, 2014 at 19:57

user3582790user3582790

5894 silver badges2 bronze badges

7

Assuming both lists a and b have same length, you do not need zip, numpy or anything else.

Python 2.x and 3.x:

[a[i]+b[i] for i in range(len(a))]

maro

4533 gold badges11 silver badges29 bronze badges

answered Jun 30, 2014 at 15:31

mathmath

8,24410 gold badges51 silver badges60 bronze badges

1

Try the following code:

first = [1, 2, 3, 4]
second = [2, 3, 4, 5]
third = map(sum, zip(first, second))

kenorb

144k76 gold badges655 silver badges710 bronze badges

answered May 16, 2015 at 12:45

1

This extends itself to any number of lists:

[sum(sublist) for sublist in itertools.izip(*myListOfLists)]

In your case, myListOfLists would be [first, second]

answered Dec 27, 2012 at 7:20

inspectorG4dgetinspectorG4dget

106k25 gold badges137 silver badges235 bronze badges

2

The easy way and fast way to do this is:

three = [sum(i) for i in zip(first,second)] # [7,9,11,13,15]

Alternatively, you can use numpy sum:

from numpy import sum
three = sum([first,second], axis=0) # array([7,9,11,13,15])

answered Mar 17, 2013 at 9:25

How to sum lists together in python

ThiruThiru

3,0837 gold badges35 silver badges49 bronze badges

1

one-liner solution

list(map(lambda x,y: x+y, a,b))

answered Jul 25, 2019 at 7:36

How to sum lists together in python

ShadowmanShadowman

611 silver badge4 bronze badges

first = [1, 2, 3, 4, 5]
second = [6, 7, 8, 9, 10]
three = list(map(sum, first, second))
print(three)



# Output 
[7, 9, 11, 13, 15]

How to sum lists together in python

KetZoomer

2,4863 gold badges14 silver badges37 bronze badges

answered Jul 21, 2017 at 8:11

How to sum lists together in python

Anurag MisraAnurag Misra

1,42217 silver badges23 bronze badges

1

If you have an unknown number of lists of the same length, you can use the below function.

Here the *args accepts a variable number of list arguments (but only sums the same number of elements in each). The * is used again to unpack the elements in each of the lists.

def sum_lists(*args):
    return list(map(sum, zip(*args)))

a = [1,2,3]
b = [1,2,3]  

sum_lists(a,b)

Output:

[2, 4, 6]

Or with 3 lists

sum_lists([5,5,5,5,5], [10,10,10,10,10], [4,4,4,4,4])

Output:

[19, 19, 19, 19, 19]

answered May 19, 2019 at 13:44

How to sum lists together in python

0

My answer is repeated with Thiru's that answered it in Mar 17 at 9:25.

It was simpler and quicker, here are his solutions:

The easy way and fast way to do this is:

 three = [sum(i) for i in zip(first,second)] # [7,9,11,13,15]

Alternatively, you can use numpy sum:

 from numpy import sum
 three = sum([first,second], axis=0) # array([7,9,11,13,15])

You need numpy!

numpy array could do some operation like vectors

import numpy as np
a = [1,2,3,4,5]
b = [6,7,8,9,10]
c = list(np.array(a) + np.array(b))
print c
# [7, 9, 11, 13, 15]

answered Oct 22, 2013 at 9:58

PiecePiece

212 bronze badges

1

What if you have list with different length, then you can try something like this (using zip_longest)

from itertools import zip_longest  # izip_longest for python2.x

l1 = [1, 2, 3]
l2 = [4, 5, 6, 7]

>>> list(map(sum, zip_longest(l1, l2, fillvalue=0)))
[5, 7, 9, 7]

answered Apr 26, 2020 at 19:21

How to sum lists together in python

mohammed wazeemmohammed wazeem

1,2401 gold badge8 silver badges25 bronze badges

You can use zip(), which will "interleave" the two arrays together, and then map(), which will apply a function to each element in an iterable:

>>> a = [1,2,3,4,5]
>>> b = [6,7,8,9,10]
>>> zip(a, b)
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
>>> map(lambda x: x[0] + x[1], zip(a, b))
[7, 9, 11, 13, 15]

answered Dec 27, 2012 at 7:12

cdhowiecdhowie

149k23 gold badges278 silver badges290 bronze badges

Here is another way to do it. We make use of the internal __add__ function of python:

class SumList(object):
    def __init__(self, this_list):
        self.mylist = this_list

    def __add__(self, other):
        new_list = []
        zipped_list = zip(self.mylist, other.mylist)
        for item in zipped_list:
            new_list.append(item[0] + item[1])
        return SumList(new_list)

    def __repr__(self):
        return str(self.mylist)

list1 = SumList([1,2,3,4,5])
list2 = SumList([10,20,30,40,50])
sum_list1_list2 = list1 + list2
print(sum_list1_list2)

Output

[11, 22, 33, 44, 55]

TrakJohnson

1,6292 gold badges17 silver badges30 bronze badges

answered Sep 23, 2016 at 19:18

How to sum lists together in python

StrykerStryker

5,34254 silver badges65 bronze badges

If you want to add also the rest of the values in the lists you can use this (this is working in Python3.5)

def addVectors(v1, v2):
    sum = [x + y for x, y in zip(v1, v2)]
    if not len(v1) >= len(v2):
        sum += v2[len(v1):]
    else:
        sum += v1[len(v2):]

    return sum


#for testing 
if __name__=='__main__':
    a = [1, 2]
    b = [1, 2, 3, 4]
    print(a)
    print(b)
    print(addVectors(a,b))

answered May 10, 2017 at 10:59

How to sum lists together in python

    first = [1,2,3,4,5]
    second = [6,7,8,9,10]
    #one way
    third = [x + y for x, y in zip(first, second)]
    print("third" , third) 
    #otherway
    fourth = []
    for i,j in zip(first,second):
        global fourth
        fourth.append(i + j)
    print("fourth" , fourth )
#third [7, 9, 11, 13, 15]
#fourth [7, 9, 11, 13, 15]

answered Jul 5, 2017 at 11:49

How to sum lists together in python

Here is another way to do it.It is working fine for me .

N=int(input())
num1 = list(map(int, input().split()))
num2 = list(map(int, input().split()))
sum=[]

for i in range(0,N):
  sum.append(num1[i]+num2[i])

for element in sum:
  print(element, end=" ")

print("")

Agney

17.1k7 gold badges50 silver badges73 bronze badges

answered Sep 11, 2017 at 19:49

How to sum lists together in python

j = min(len(l1), len(l2))
l3 = [l1[i]+l2[i] for i in range(j)]

How to sum lists together in python

Cris Luengo

51.4k9 gold badges59 silver badges113 bronze badges

answered Dec 27, 2017 at 5:06

1

If you consider your lists as numpy array, then you need to easily sum them:

import numpy as np

third = np.array(first) + np.array(second)

print third

[7, 9, 11, 13, 15]

answered Apr 25, 2019 at 10:32

How to sum lists together in python

RadvinRadvin

1434 silver badges10 bronze badges

Perhaps the simplest approach:

first = [1,2,3,4,5]
second = [6,7,8,9,10]
three=[]

for i in range(0,5):
    three.append(first[i]+second[i])

print(three)

answered Jul 26, 2018 at 15:20

first = [1,2,3,4,5]
second = [6,7,8,9,10]
third=[]
for i,j in zip(first,second):
    t=i+j
    third.append(t)
print("Third List=",third)

output -- Third List= [7, 9, 11, 13, 15]

answered Sep 13 at 7:51

How to sum lists together in python

2

You can use this method but it will work only if both the list are of the same size:

first = [1, 2, 3, 4, 5]
second = [6, 7, 8, 9, 10]
third = []

a = len(first)
b = int(0)
while True:
    x = first[b]
    y = second[b]
    ans = x + y
    third.append(ans)
    b = b + 1
    if b == a:
        break

print third

answered Dec 27, 2012 at 11:52

HelloUniHelloUni

4482 gold badges5 silver badges10 bronze badges

Can you sum lists in Python?

Python provides an inbuilt function sum() which sums up the numbers in the list. Syntax: sum(iterable, start) iterable : iterable can be anything list , tuples or dictionaries , but most importantly it should be numbers.

How do you sum a list of elements in a list Python?

Let's have a look at a few of the algorithms used to compute the sum of a list in Python..
Using a simple loop. The most basic solution is to traverse the list using a for/while loop, adding each value to the variable total . ... .
Computing the sum recursively. ... .
Using the sum() method..

Can I sum an array in Python?

Python numpy sum() function is used to get the sum of array elements over a given axis.

How do you find the sum of a group of numbers in Python?

To sum all numbers in a range: Use the range() class to get a range of numbers. Pass the range object to the sum() function. The sum() function will return the sum of the integers in the range.