Nested list comprehensions
Nested list comprehensions are the list comprehension inside other list comprehension. The term nested means list containing another list in it. The best example for nested list comprehension is creating a matrix. Let us see an example. Creating a matrix by using list comprehension
Python Code:
matrix = []
for i in range(5):
# Append an empty sublist inside the list
matrix.append([])
for j in range(3):
matrix[i].append(j)
print(matrix)
Output:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]
We can create the same matrix by using nested list comprehension in more simpler way, that is in single line code.
Python Code:
matrix = [[j for j in range(3)] for i in range(5)]
print(matrix)
Output:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

In python, by using nested list comprehension we can also flatten already existing list.
Python Code:
matrix = [['jan','feb','mar','apr'], ['may','june','july','aug'], ['sep','oct','nov','dec']]
flatten_matrix = []
for sublist in matrix:
for val in sublist:
flatten_matrix.append(val)
print(flatten_matrix)
Output:
[‘jan’, ‘feb’, ‘mar’, ‘apr’, ‘may’, ‘june’, ‘july’, ‘aug’, ‘sep’, ‘oct’, ‘nov’, ‘dec’]
Same as discussed earlier, this flattening of list action can also be done by nested list comprehension in easier way.
Python Code:
matrix = [['jan','feb','mar','apr'], ['may','june','july','aug'], ['sep','oct','nov','dec']]
flatten_matrix = [val for sublist in matrix for val in sublist]
print(flatten_matrix)
Output:
[‘jan’, ‘feb’, ‘mar’, ‘apr’, ‘may’, ‘june’, ‘july’, ‘aug’, ‘sep’, ‘oct’, ‘nov’, ‘dec’]
