Open In App

Iterate Over a List of Lists in Python

Last Updated : 22 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

We are given a list that contains multiple sublists, and our task is to iterate over each of these sublists and access their elements. For example, if we have a list like this: [[1, 2], [3, 4], [5, 6]], then we need to loop through each sublist and access elements like 1, 2, 3, and so on.

Using Nested For Loops

This is the most straightforward way to iterate through each sublist and access individual items.

Python
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for i in a:
    for j in i:
        print(j, end=' ')
    print()

Output
1 2 3 
4 5 6 
7 8 9 

Explanation:

  • Outer loop iterates through each sublist.
  • Inner loop prints each item in the sublist.
  • end=' ' prints items on the same line, followed by print() for a new line per sublist.

Using List Comprehension

If our goal is to flatten a nested list into a single list, list comprehension offers a concise solution.

Python
a = [[1, 2], [3, 4], [5, 6]]
b = [i for sub in n for i in sub]

print(b)

Output
[1, 2, 3, 4, 5, 6]

Explanation:

  • List comprehension flattens the nested list into a single list.
  • "b" contains all elements from "a" in one dimension.

Using enumerate() on Nested Lists

We can use enumerate() to track indices while iterating, which is helpful when we want to know the position of each sublist.

Python
a = [['Python', 'Java'], ['C++', 'C#'], ['Go', 'Rust']]

for i, g in enumerate(a, start=1):
    print(f"Group {i}: {g}")

Output
Group 1: ['Python', 'Java']
Group 2: ['C++', 'C#']
Group 3: ['Go', 'Rust']

Explanation:

  • enumerate() tracks index (i) of each sublist (group).
  • start=1 begins counting from 1.
  • Useful when you need position info along with elements.

Using itertools.chain() Function

itertools.chain() lets us combine multiple iterables into one. It's great for flattening nested lists efficiently, especially with large datasets, as it avoids creating extra lists in memory.

Python
from itertools import chain

a = [[1, 2], [3, 4], [5, 6]]
b = list(chain(*a))

print(b)

Output
[1, 2, 3, 4, 5, 6]

Explanation:

  • chain(*a) unpacks and chains all sublists.
  • Efficient and memory-friendly for large nested lists.
  • Returns a flat list containing all elements.

Also read: matrices, list-comprehension, itertools.chain(), enumerate().


Next Article
Practice Tags :

Similar Reads