Глядя на ваш код ... Я не уверен, что он должен делать, но я могу сделать некоторые предположения.
Сначала вы выбираете случайное слово. Затем вы просматриваете индексы всех слов, которые соответствуют этому слову. Затем вы хотите использовать этот список индексов с pop
.
Ну, вы можете исправить это:
for idx in reversed(selected_word):
words.pop(idx)
(reversed
важен, поэтому сначала нужно выбрать самые правые.)
Но в этом нет необходимости, потому что в words
должна быть только одна копия word_1
и, следовательно, в selected_word
только один индекс. Так что вы можете просто сделать это:
words.pop(selected_word[0])
Но в этом случае понимание не нужно. Получение всех совпадений и получение первого делает то же самое, что и первое совпадение, и списки уже имеют метод для этого: index
.
words.pop(words.index(word_1))
Но на самом деле, вместо того, чтобы выбрать слово и затем найти его, чтобы получить индекс, вы можете просто получить индекс:
index = random.randrange(len(words))
word_1 = words.pop(index)
Или, проще всего, просто замените все это на:
word_1, word_2 = random.sample(words, 2)