为什么此列表中的两个字母的索引返回相同?

所以我在列表中索引字母。如果我将“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()


交互式爱情
浏览 209回答 3
3回答

呼唤远方

使用str.join有str.rindex:print(''.join(yourList).rindex('l'))或使用enumerate:print([i for i,v in enumerate(yourList) if v == 'l'][-1])两个输出:3

森林海

列表索引函数返回第一次出现的索引。解决方法可能是从数组创建一个字符串并使用该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)

qq_花开花谢_0

您可以guessLetter()覆盖任何返回索引的字母:def guessLetter():    guess = input("Please enter one letter: ")    for letter in wordindexes:        if guess == letter:            index = wordindexes.index(letter)            wordindexes[index] = 0            return index    return -1  # not found测试>>> guessLetter()Please enter one letter: l2>>> guessLetter()Please enter one letter: l3>>> guessLetter()Please enter one letter: l-1>>> 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python