How to flatten a nested list in Python
· 1 min read · Updated March 16, 2026 · beginner
python lists nested
Flattening a nested list is common. Here are the main approaches.
List comprehension (shallow flatten)
One level of nesting:
nested = [[1, 2], [3, 4], [5, 6]]
flat = [item for sublist in nested for item in sublist]
print(flat) # [1, 2, 3, 4, 5, 6]
Using itertools.chain
from itertools import chain
nested = [[1, 2], [3, 4], [5, 6]]
flat = list(chain.from_iterable(nested))
print(flat) # [1, 2, 3, 4, 5, 6]
Recursive (deep flatten)
For arbitrarily deep lists:
def flatten(nested):
result = []
for item in nested:
if isinstance(item, list):
result.extend(flatten(item))
else:
result.append(item)
return result
nested = [1, [2, [3, [4, 5]]], 6]
print(flatten(nested)) # [1, 2, 3, 4, 5, 6]