Получение нескольких возвратов из index () - PullRequest
0 голосов
/ 18 октября 2018

Я работаю над палачом на Python.Мой список «ответов» содержит все буквы слова по порядку, список «работы» начинается с тире для каждой буквы, которые затем заполняются правильными буквами.

При использовании index () он тольковозвращает самую низкую позицию в списке, в которой отображается значение.Однако мне нужен способ вернуть все экземпляры значения (в противном случае повторяющиеся буквы не заполняются).

Я новичок в Python, поэтому не уверен, что какой-тоцикл лучше, или если есть другая функция для получения результата, который я ищу.Я посмотрел на enumerate (), но я не уверен, как это будет работать в этом случае.

if guess in word:
    print("Correct!")

    for i in range(count):
        work[answer.index(guess)] = [guess]

    print(work)

1 Ответ

0 голосов
/ 18 октября 2018

Как вы упомянули, проблема в том, что index возвращает только первое вхождение символа в строке.Чтобы решить вашу проблему, вам нужно перебрать answer и получить индексы символов, равные guess, примерно так (используя enumerate ):

guess = 'l'
word = "hello"
work = [""] * len(word)
answer = list(word)

if guess in word:
    print("Correct!")
    for i, c in enumerate(answer):
        if c == guess:
            work[i] = guess
    print(work)

Вывод

Correct!
['', '', 'l', 'l', '']

Обратите внимание, что work немного отличается от того, что вы указали в комментариях.

Далее:

  1. Как найти все вхождения элемента в списке?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...