0
0
PythonHow-ToBeginner · 3 min read

How to Flatten List Using List Comprehension in Python

You can flatten a nested list in Python using a list comprehension by iterating over each sublist and then over each item inside it, like [item for sublist in nested_list for item in sublist]. This creates a new flat list containing all elements from the nested lists.
📐

Syntax

The syntax for flattening a nested list using list comprehension is:

  • [item for sublist in nested_list for item in sublist]

Here, nested_list is your list of lists, sublist iterates over each inner list, and item iterates over each element inside those inner lists.

python
[item for sublist in nested_list for item in sublist]
💻

Example

This example shows how to flatten a list of lists into a single list using list comprehension.

python
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)
Output
[1, 2, 3, 4, 5, 6, 7, 8, 9]
⚠️

Common Pitfalls

One common mistake is reversing the order of the for loops, which causes a syntax error or incorrect results. Another is trying to flatten lists with more than two levels of nesting without adjusting the comprehension.

Wrong way (will cause error or unexpected output):

flat_list = [item for item in sublist for sublist in nested_list]

Right way:

flat_list = [item for sublist in nested_list for item in sublist]
python
nested_list = [[1, 2], [3, 4]]
# Wrong order - causes error or wrong output
# flat_list = [item for item in sublist for sublist in nested_list]  # This is incorrect

# Correct order
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)
Output
[1, 2, 3, 4]
📊

Quick Reference

Remember these tips when flattening lists with list comprehension:

  • Use two for clauses: first for sublists, second for items.
  • Order matters: for sublist in nested_list comes before for item in sublist.
  • This method works for one level of nesting only.

Key Takeaways

Use nested for loops inside list comprehension to flatten one-level nested lists.
The order of for loops in list comprehension is important for correct flattening.
This method only flattens one level of nesting; deeper nesting requires more steps.
Avoid reversing the for loops to prevent syntax errors or wrong results.
List comprehension provides a clean and efficient way to flatten lists in Python.