Sobes.tech
Junior — Middle
107

Wat gebeurt er als je een `for`-lus uitvoert die over een lijst iterereert en deze lijst verandert tijdens de iteratie?

Antwoord van AI

sobes.tech AI

Если во время итерации цикла for по списку этот список изменяется (например, элементы добавляются или удаляются), поведение зависит от того, как именно организован цикл.

В Python при итерации по списку создаётся итератор, который обращается к элементам по индексам. Если список изменяется во время итерации, это может привести к:

  • Пропуску некоторых элементов или повторному прохождению элементов.
  • Ошибкам, если изменяется длина списка.

Пример:

lst = [1, 2, 3, 4]
for x in lst:
    print(x)
    if x == 2:
        lst.remove(3)  # изменяем список во время итерации

В этом примере элемент 3 будет удалён, и итерация может пропустить некоторые элементы или вести себя непредсказуемо.

Рекомендуется не изменять список во время итерации. Если нужно изменить, лучше итерироваться по копии:

for x in lst[:]:  # копия списка
    if условие:
        lst.remove(x)