A loop can contain one or more other loops: you can create a loop inside a loop.
This principle is known as nested loops. Nested loops go over two or more loops.

Programmers typically nest 2 or 3 levels deep. Anything higher than that is just confusing.

Related course: Complete Python Bootcamp: Go from zero to hero in Python 3


Lets do a simple example. We create two lists:

persons = [ "John", "Marissa", "Pete", "Dayton" ]
restaurants = [ "Japanese", "American", "Mexican", "French" ]

If we have a list of persons who like to eat at restaurants, can we make every one of them eat a certain restaurant?


persons = [ "John", "Marissa", "Pete", "Dayton" ]
restaurants = [ "Japanese", "American", "Mexican", "French" ]

for person in persons:
for restaurant in restaurants:
print(person + " eats " + restaurant)

This goes over both loops:

nested loop output


Try the exercises below

  1. Given a tic-tac-toe board of 3x3, print every position

  2. Create a program where every person meets the other
    persons = [ “John”, “Marissa”, “Pete”, “Dayton” ]

  3. If a normal for loop finishes in n steps O(n), how many steps has a nested loop?

After completing these continue with the next exercise.

Download answers