我想知道如果带有列表的字符串中有冗余字符,您将如何显示。让我解释一下。假设您有一个带有表示空格的“_”符号的列表:
word = ["_","_","_","_"]
现在说你有一个字符串:
string = "door"
假设您希望用户通过输入Hangman风格的字符来猜测单词是什么。如果他们的猜测是正确的,你希望该字符在字符串中的同一位置的“word”数组中,所以如果他们猜测“d”,那么“word”列表将如下所示:
word = ["d","_""_""_"]
它会打印出来看起来像“d _ _ _”。到目前为止我没有问题,但是当显示冗余字符时,我遇到了问题。例如,如果用户猜到“o”,我似乎无法在数组的“门”中显示“o”,它总是如下所示:
word = ["_", "o", "_", "_"]
我希望它看起来像这样:
word = ["_", "o", "o", "_"]
现在请注意,这个问题与我的上一个问题非常相似,只是没有解释如何在列表中显示它们。我也不确定以前是否曾经问过这个问题,我没有发现任何类似的问题,但仍有一些问题。我很困惑,我不知道还能做什么!感谢您的时间。如果我通过询问这个问题打破了stackoverflow命令,我道歉。
答案 0 :(得分:0)
您目前正在修改word
的方式是什么?为确保每个字符都会显示,您可以遍历string
:如果i
中索引string
处的字母等于猜测,请设置word[i] = guess
。这样可以确保捕获所有字母。
答案 1 :(得分:0)
每次都需要遍历单词:
ans = 'door'
word = ['_' for _ in ans]
while '_' in word:
guess = raw_input('Guess a char')
for i, c in enumerate(ans):
if guess.lower() == c.lower():
word[i] = c
print word
为避免出现问题,请在输入和str.lower
上使用c
。
输出:
Guess a char
d
['d', '_', '_', '_']
Guess a char
o
['d', 'o', 'o', '_']
Guess a char
r
['d', 'o', 'o', 'r']
Process finished with exit code 0
答案 2 :(得分:0)
很高兴看到你到目前为止能够指出正确方向的代码,但看看这个:
def check_guess(word, guessed_character, guess_list):
if guessed_character in word:
for index, character in enumerate(word):
if guessed_character == character:
guess_list[index] = character
return guess_list
WORD = 'door'
guess_list = ['_'] * len(WORD)
while '_' in guess_list:
guessed_character = raw_input()
print '{}'.format(check_guess(WORD, guessed_character, guess_list))
答案 3 :(得分:0)
因为我想知道我是否可以将其作为一个班轮:
string = 'door'
guesses = ['o'] # fill this in as you get guesses
word = [i in guesses and i or '_' for i in string]
答案 4 :(得分:0)
word = 'door'
blanks = ['_' for x in word] # easy way to generate blanks from word
guess = 'o'
[guess if x == guess else '_' for x in word] #=> ['_','o','o','_']