Last modified: Oct 30, 2024 By Alexander Williams

Adding Each Element of Two Lists in Python

Adding elements of two lists in Python is common in data processing. Here’s how to efficiently add each element in one list to the corresponding element in another.

Using zip() for Element-Wise Addition

zip() allows us to pair elements from two lists by index, making it ideal for element-wise addition. Here’s a basic example:


list1 = [1, 2, 3]
list2 = [4, 5, 6]
sum_list = [a + b for a, b in zip(list1, list2)]
print(sum_list)


[5, 7, 9]

In this example, each element in list1 is added to the corresponding element in list2. The result is a new list.

Using List Comprehension

List comprehension offers a concise way to handle element-wise addition when lists are of the same length. It combines looping and addition into one line.

For more details, check out Loop Moves to Next Element in List in Python.

Handling Lists of Different Lengths

If the lists are of unequal lengths, using a padding method like filling missing values with 0 ensures all elements are accounted for:


from itertools import zip_longest

list1 = [1, 2, 3]
list2 = [4, 5]
sum_list = [a + b for a, b in zip_longest(list1, list2, fillvalue=0)]
print(sum_list)


[5, 7, 3]

In this case, the shorter list is padded with 0 using zip_longest(), allowing all elements to be added correctly.

Using NumPy for Larger Lists

NumPy is ideal for mathematical operations on large lists or arrays. With numpy.add(), you can add lists element-wise quickly:


import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]
sum_list = np.add(list1, list2)
print(sum_list)


[5 7 9]

Using np.add() is both efficient and concise for handling large data arrays. To learn more, see NumPy’s documentation.

Conclusion

Python offers flexible ways to add elements of two lists, from zip() for basic tasks to NumPy for high-performance operations. Choose the method that suits your data size and requirements best.