首页 > 解决方案 > 从 index() 获得多个回报

问题描述

我正在用 Python 开发一个刽子手游戏。我的“答案”列表按顺序包含单词的所有字母,“工作”列表以每个字母的破折号开始,然后用正确的字母填充。

使用 index() 时,它只返回值出现在列表中的最低位置。但是,我需要一种方法来返回值的所有实例(否则不会填充重复的字母)。

我是 Python 新手,所以我不确定某种循环是否最好,或者是否有不同的函数来获得我正在寻找的结果。我看过 enumerate() 但我不确定这在这种情况下如何工作。

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

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

    print(work)

标签: pythonindexing

解决方案


正如您所提到的,问题是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. 如何在列表中查找所有出现的元素?

推荐阅读