Last modified: Nov 27, 2024 By Alexander Williams

Python Zip Two Lists

Combining two lists in Python is simple and efficient with the zip() function. This function pairs elements from two or more lists into tuples.

Understanding the zip() Function

The zip() function takes two or more iterables (e.g., lists) and returns an iterator of tuples. Each tuple contains elements from the same position in each iterable.


# Basic example of zip()
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))


[(1, 'a'), (2, 'b'), (3, 'c')]

How to Use zip() with Two Lists

You can use zip() when you need to merge two lists element by element. Here's a practical example:


# Example: Combining names and ages
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

combined = zip(names, ages)
for name, age in combined:
    print(f"{name} is {age} years old.")


Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.

Handling Lists of Unequal Length

When the lists have different lengths, zip() stops pairing at the shortest list's length. This behavior avoids errors.


# Unequal lists example
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))


[(1, 'a'), (2, 'b'), (3, 'c')]

Using zip() to Unpack Data

The zip() function can also be used to reverse its operation, splitting tuples back into separate lists.


# Unzipping example
zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
list1, list2 = zip(*zipped)

print(list1)
print(list2)


(1, 2, 3)
('a', 'b', 'c')

Practical Applications of zip()

  • Combining related data, such as names and scores, for easy iteration.
  • Creating dictionaries from two lists (e.g., keys and values).
  • Transposing a matrix represented as a list of lists.

Creating a Dictionary from Two Lists

With zip(), you can create a dictionary by combining a list of keys and a list of values.


# Example: Keys and values
keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)


{'name': 'Alice', 'age': 25, 'city': 'New York'}

Related Articles

Explore more about Python lists and their functionalities:

Conclusion

The zip() function is a versatile tool in Python for pairing or merging lists efficiently. Understanding its behavior with examples can significantly enhance your coding skills.