Задать вопрос
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


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

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

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

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
13 янв. 2025, в 23:21
2000 руб./в час
13 янв. 2025, в 23:16
10000 руб./за проект
13 янв. 2025, в 21:59
30000 руб./за проект