首页 > 解决方案 > 为什么此列表中两个字母的索引返回相同?

问题描述

所以我在一个列表中索引字母。如果我将“h”“e”“l”“l”“o”的字母放在列表中并尝试获取它们的索引,它会返回 0 1 2 2 4。我如何获得第二个“l " 显示为 3?

def gameboard():
    print("_ " * len(secretword))
    for i in secretword:
        gameboardindexes.append("_ ")

def letterindexes():
    for i in secretword:
         wordindexes.append(i)

def guessLetter():
    guess = input("Please enter one letter: ")
    for i in wordindexes:
        if guess == i:
            x = wordindexes.index(i)
            print(x)

secretword = input("Please enter word:")
wordindexes = []
gameboardindexes = []
wrongletters = []


letterindexes()
gameboard()
guessLetter()

标签: python

解决方案


列表索引函数返回第一次出现的索引。解决方法可能是从数组创建一个字符串并使用该rindex()函数。该rindex()函数返回找到子字符串的最后一个索引。

hello = ['h', 'e', 'l', 'l', 'o']
''.join(char for char in hello).rindex('l')

另一种可能性是为列表索引函数提供一个超过第一个找到的索引的开始索引。

hello = ['h', 'e', 'l', 'l', 'o']
hello.index('l', hello.index('l') + 1)

推荐阅读