Цикл while продолжает работать после выполнения условия

l = ['red','green','black']
ctr=0
while ctr <= (len(l)-1):
    l.insert(ctr,'c')
    ctr +=2
print(l)

>>> 'c', 'red', 'c', 'green', 'c', 'black']

Объясните, пожалуйста, почему цикл while продолжает работать после 2 итерации, хотя на третьей итерации ctr = 4 и больше чем (len(l) - 1) = 2 и вроде бы цикл должен завершиться. Спасибо!


всем спасибо! что длинна списка увеличивается, не догадался :)


Ответы (1 шт):

Автор решения: WilteRatenau

Цикл работает корректно. Происходит 3 итерации.

> Первая ctr = 0, длинна списка = 2 (потому что у вас длинна списка - 1)
> вторая ctr = 2, длинна списка = 3 (потому что у вас длинна списка - 1)
> третья ctr = 4, длинна списка = 4 (потому что у вас длинна списка - 1)

По этой причине у Вас список с требя "с"

→ Ссылка