Python Glossary English

все 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Сообщить о неточности