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]

See Also