Flatten nested lists with a list comprehension
This post is part of the programming series.
Here’s my programming tip of the day. You can flatten a nested list of lists into a single flat list with a nested list comprehension. Wow, phrasing.
It’s easy to get confused. If you forget how to do it, you can first write out the whole loop:
# Flatten list >>> flat =  >>> nested = [ [1, 2, 3], [4, 5, 6] ] >>> for sub in nested: >>> for element in sub: >>> flat.append(element) >>> flat [1, 2, 3, 4, 5, 6]
To collapse this into a one-liner, work from the outer scope inwards:
flat = [ el for sub in nested for el in sub ]
Voila. Lean and mean.