查找字符串

时间:2017-06-01 12:47:45

标签: python string python-3.6

我是python的新手,并试图建立一个Hangman游戏进行练习。

我正在使用Python 3.6.1

用户可以输入一封信,我想告诉他该单词中是否出现该字母及其所在位置。

我使用occurrences = currentWord.count(guess)获取总出现次数

我有firstLetterIndex = (currentWord.find(guess))来获取索引。

现在我有第一个字母的索引,但如果这个字有多次这个字怎么办? 我试过secondLetterIndex = (currentWord.find(guess[firstLetterIndex, currentWordlength])),但这不起作用 有一个更好的方法吗?也许我找不到功能的构建?

2 个答案:

答案 0 :(得分:4)

执行此操作的一种方法是使用列表解析来查找索引:

currentWord = "hello"

guess = "l"

occurrences = currentWord.count(guess)

indices = [i for i, a in enumerate(currentWord) if a == guess]

print indices

输出:

[2, 3]

答案 1 :(得分:0)

我会保留第二个布尔值列表,指出哪些字母已正确匹配。

>>> word_to_guess = "thicket"
>>> matched = [False for c in word_to_guess]
>>> for guess in "te":
...   matched = [m or (guess == c) for m, c in zip(matched, word_to_guess)]
...   print(list(zip(matched, word_to_guess)))
...
[(True, 't'), (False, 'h'), (False, 'i'), (False, 'c'), (False, 'k'), (False, 'e'), (True, 't')]
[(True, 't'), (False, 'h'), (False, 'i'), (False, 'c'), (False, 'k'), (True, 'e'), (True, 't')]