How do I make a flat list out of a list of lists?
Working with nested lists in Python? Learn how to flatten them into one simple list using different approaches like loops, list comprehensions, or built-in libraries.
Flattening a list of lists in Python basically means converting a nested structure like [[1, 2], [3, 4], [5]] into a single flat list like [1, 2, 3, 4, 5]. There are several ways to do this depending on your preference and the complexity of the nested lists.
Here are some common methods:
Using list comprehension (most common and readable):
nested_list = [[1, 2], [3, 4], [5]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list) # Output: [1, 2, 3, 4, 5]
Using itertools.chain:
import itertools
flat_list = list(itertools.chain.from_iterable(nested_list))
Using a simple loop:
flat_list = []
for sublist in nested_list:
for item in sublist:
flat_list.append(item)
A few things to keep in mind:
- These methods assume that the list is only one level deep.
- If you're working with deeply nested lists (e.g., [[1, [2, 3]], 4]), you'll need a recursive approach or use libraries like more_itertools or numpy.