0
0
PythonHow-ToBeginner · 3 min read

How to Combine Two Lists Element Wise in Python

To combine two lists element wise in Python, use the zip() function which pairs elements from each list into tuples. You can convert these pairs into a list or process them directly with a loop or comprehension.
📐

Syntax

The basic syntax to combine two lists element wise is using the zip() function:

  • zip(list1, list2): Pairs elements from list1 and list2 into tuples.
  • Wrap with list() to get a list of tuples.
python
combined = list(zip(list1, list2))
💻

Example

This example shows how to combine two lists element wise into a list of tuples and then sum each pair:

python
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# Combine element wise into tuples
combined = list(zip(list1, list2))
print("Combined as tuples:", combined)

# Sum each pair using list comprehension
summed = [a + b for a, b in zip(list1, list2)]
print("Sum of each pair:", summed)
Output
Combined as tuples: [(1, 4), (2, 5), (3, 6)] Sum of each pair: [5, 7, 9]
⚠️

Common Pitfalls

One common mistake is assuming zip() works if lists have different lengths. zip() stops at the shortest list, so extra elements in the longer list are ignored.

To handle this, use itertools.zip_longest() which fills missing values with a specified fill value.

python
from itertools import zip_longest

list1 = [1, 2, 3, 7]
list2 = [4, 5, 6]

# zip stops at shortest list
combined_zip = list(zip(list1, list2))
print("zip result:", combined_zip)

# zip_longest fills missing with None
combined_longest = list(zip_longest(list1, list2))
print("zip_longest result:", combined_longest)
Output
zip result: [(1, 4), (2, 5), (3, 6)] zip_longest result: [(1, 4), (2, 5), (3, 6), (7, None)]
📊

Quick Reference

Summary tips for combining lists element wise:

  • Use zip() for equal-length lists.
  • Use itertools.zip_longest() to handle different lengths.
  • Convert zipped pairs to list with list().
  • Use list comprehension to process pairs directly.

Key Takeaways

Use zip() to combine two lists element wise into pairs.
zip() stops at the shortest list length, ignoring extra elements.
Use itertools.zip_longest() to include all elements from longer lists.
Convert zipped results to a list for easy use or iterate directly.
List comprehensions work well to process combined elements.