kolumbou
@kolumbou
python, html, c#

Как правильно обращаться к элементам списка?

Возникло у меня недопонимание со списками...

Есть список:

testlist = ['1111',
            '2222',
            '3333',
            '4444',
            '5555']


Я сделал цикл перебора его элементов с последующим их удалением:

while testlist:
    for items in testlist:
        print ('Беру элемент',items)
        print ('Удаляю',testlist.pop(0))
        time.sleep(15)


Вопрос:
Почему вывод элемента print(items) выводит их абсолютно рандомно, когда по идее должно работать в том же порядке, как и .pop(0) ?
print используется у меня для наглядности, на самом деле там функция, которой я хочу так же передавать эти элементы ПОСЛЕДОВАТЕЛЬНО, а не как это выходит у print.

Вывод консоли:

Беру элемент 1111
Удаляю 1111
Беру элемент 3333
Удаляю 2222
Беру элемент 5555
Удаляю 3333
Беру элемент 4444
Удаляю 4444
Беру элемент 5555
Удаляю 5555


Я совсем еще зеленый, по этому наверняка просто не знаю чего-то простого :(
  • Вопрос задан
  • 990 просмотров
Решения вопроса 2
AnnTHony
@AnnTHony
Интроверт
Цикл for здесь лишний.

while(testlist):
	x = testlist.pop(0)
	print('Беру элемент', x)
	print('Удаляю', x)
Ответ написан
@VovanZ
Потому что нельзя изменять список (да и любую другую коллекцию), во время итерации по нему же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы