все Python 3Циклыконструкция
Вложенные циклы
вложенность
Цикл внутри другого цикла. Внутренний цикл выполняется полностью на каждой итерации внешнего. break/continue работают только с ближайшим циклом.
Синтаксис
for i in ...:
for j in ...:
блок
Следите за сложностью: вложенность перемножает длины, и два цикла по n элементов — это уже O(n²), которое быстро становится узким местом. В Python нет метки для break, поэтому выйти сразу из всех уровней нельзя — заводят флаг либо выносят циклы в отдельную функцию и делают return.
Примеры
for i in range(1, 4):
for j in range(1, 4):
print(f"{i}*{j}={i*j}", end=" ")
print() # таблица умножения 3x3
matrix = [[1, 2, 3], [4, 5, 6]]
for row in matrix:
for val in row:
print(val, end=" ") # → 1 2 3 4 5 6
found = False
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
found = True
break
if found:
break
print(found) # → True
pairs = [(i, j) for i in range(3) for j in range(3) if i != j]
print(len(pairs)) # → 6
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности