PYTHON
Creating Dictionaries from Two Lists
Learn how to efficiently construct a Python dictionary by pairing elements from two separate lists (one for keys, one for values) using `zip()` and dictionary comprehensions.
keys = ["id", "name", "email"]
values = [101, "Alice", "[email protected]"]
# Using zip() and dict() constructor
user_profile_dict = dict(zip(keys, values))
# print(f"Dictionary from two lists: {user_profile_dict}")
# Using dictionary comprehension with zip()
product_ids = [1, 2, 3]
product_names = ["Laptop", "Mouse", "Keyboard"]
product_map = {p_id: p_name for p_id, p_name in zip(product_ids, product_names)}
# print(f"Product map: {product_map}")
# Handling lists of different lengths with zip_longest (from itertools)
from itertools import zip_longest
short_keys = ["a", "b"]
long_values = [10, 20, 30]
# Fills missing values with None or a specified fillvalue
combined_with_fill = dict(zip_longest(short_keys, long_values, fillvalue="N/A"))
# print(f"Combined with fill: {combined_with_fill}")
How it works: A common task in data processing is to create a dictionary where keys come from one list and values from another. Python's built-in `zip()` function pairs corresponding elements from two or more iterables, making this process straightforward. This snippet demonstrates how to leverage `zip()` efficiently with the `dict()` constructor or a dictionary comprehension. It also shows using `itertools.zip_longest` to gracefully handle lists of differing lengths, filling missing values as needed.