Add two tuples element-wise in Python

Borislav Hadzhiev

Last updated: Jun 29, 2022

Photo from Unsplash

**To add two tuples element-wise:**

- Use the
`zip`

function to get an iterable of tuples with the corresponding items. - Use a list comprehension to iterate over the iterable.
- On each iteration, pass the tuple to the
`sum()`

function.

main.py

`tuple_1 = (1, 2, 3) tuple_2 = (4, 5, 6) # 👇️ [(1, 4), (2, 5), (3, 6)] print(list(zip(tuple_1, tuple_2))) result = [sum(tup) for tup in zip(tuple_1, tuple_2)] print(result) # 👉️ [5, 7, 9]`

The zip function iterates over several iterables in parallel and produces tuples with an item from each iterable.

main.py

`tuple_1 = (1, 2, 3) tuple_2 = (4, 5, 6) # 👇️ [(1, 4), (2, 5), (3, 6)] print(list(zip(tuple_1, tuple_2)))`

You can imagine that the `zip()`

function iterates over the tuples, taking 1
item from each.

The first tuple in the list consists of the elements in each tuple that have an index of

`0`

, and the second tuple consists of the elements in each tuple that have an index of `1`

.The last step is to use a list comprehension to iterate over the `zip`

object
and sum each tuple.

main.py

`tuple_1 = (1, 2, 3) tuple_2 = (4, 5, 6) # 👇️ [(1, 4), (2, 5), (3, 6)] print(list(zip(tuple_1, tuple_2))) result = [sum(tup) for tup in zip(tuple_1, tuple_2)] print(result) # 👉️ [5, 7, 9]`

List comprehensions are used to perform some operation for every element, or select a subset of elements that meet a condition.

The sum function takes an iterable, sums its items from left to right and returns the total.

On each iteration, we pass the current tuple to the `sum()`

function and get the
total.

You can also use this approach to add more than two tuples element-wise.

main.py

`tuple_1 = (1, 2, 3) tuple_2 = (4, 5, 6) tuple_3 = (7, 8, 9) # 👇️ [(1, 4, 7), (2, 5, 8), (3, 6, 9)] print(list(zip(tuple_1, tuple_2, tuple_3))) result = [sum(tup) for tup in zip(tuple_1, tuple_2, tuple_3)] print(result) # 👉️ [12, 15, 18]`