PYTHON
Flatten a List of Lists (Single Level)
Efficiently flatten a single-level nested list into a flat list using Python's list comprehensions or `itertools.chain` for improved readability and performance.
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
# Method 1: Using a list comprehension
flattened_list_comp = [item for sublist in nested_list for item in sublist]
print(f"Flattened with list comprehension: {flattened_list_comp}")
# Method 2: Using itertools.chain (more memory efficient for very large lists)
import itertools
flattened_list_chain = list(itertools.chain(*nested_list))
print(f"Flattened with itertools.chain: {flattened_list_chain}")
# Example with strings
menu_categories = [["pizza", "pasta"], ["salad", "soup"], ["dessert"]]
all_items = list(itertools.chain(*menu_categories))
print(f"All Menu Items: {all_items}")
How it works: This snippet provides two effective methods to flatten a list of lists into a single, one-dimensional list. The list comprehension method is often preferred for its readability and conciseness for moderately sized lists. For very large nested lists where memory efficiency is critical, `itertools.chain` is a powerful alternative. It iterates over each sublist and then over each item in the sublist, yielding items without creating intermediate lists.