从index()获得多个收益

时间:2018-10-18 15:31:01

标签: python indexing

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

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

我是Python的新手,所以我不确定某种循环是最好的,还是不确定是否有其他函数可以得到我想要的结果。我已经看过enumerate(),但不确定在这种情况下如何工作。

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

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

    print(work)

1 个答案:

答案 0 :(得分:1)

您提到的问题是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. How to find all occurrences of an element in a list?
相关问题