Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

Почему индекс в методе pop находится вне границы?

import random WORDS = ["Svitanok", "hogog", "gfgfgfg", "sdasd", "adam"] newwords = [] length = len(WORDS) newpos = "" while WORDS: newpos = random.randint(0, length-1) newwords.append(WORDS.pop(newpos)) WORDS.remove(WORDS[newpos]) print(newwords)
В общем, писал алгоритм для вывода списка WORDS в случайном порядке. И наткнулся на ошибку "pop index out of range". Не могу понять, почему метод выходит за границы? P.S. Про shuffle я знаю, просто хочу написать код таким способом.


Ответ

remove не нужно вызывать, pop уже удаляет элемент из списка. Кроме этого, значение length нужно обновлять на каждой итерации, тк список WORDS изменяет свой размер.

Комментариев нет:

Отправить комментарий