显示lis字符串中是否有冗余字符

2024-04-20 03:00:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如果列表中的字符串中有冗余字符,您将如何显示。让我解释清楚。假设您有一个带有“\”符号的列表,表示一个空格:

word = ["_","_","_","_"]

现在假设你有一个字符串:

string = "door"

假设您希望用户通过输入Hangman样式的字符来猜测单词是什么。如果他们的猜测是正确的,您希望该字符在“word”数组中与字符串中的位置相同,因此如果他们猜测“d”,则“word”列表将如下所示:

word = ["d","_""_""_"]

它也会打印出来,看起来像“d”。到目前为止,我没有任何问题,但是当显示多余的字符时,我有一个问题。例如,如果用户猜到“o”,我似乎无法用数组在“door”中同时显示“o”,它总是这样:

word = ["_", "o", "_", "_"]

我希望它看起来像这样:

word = ["_", "o", "o", "_"]

现在请注意,这个问题与我的上一个问题非常相似,只是那个问题没有解释如何在列表中显示它们。我也不确定是否有人问过这个问题,我没有发现任何类似的问题,但仍然可能有一些。我太困惑了,不知道还能做什么!谢谢你抽出时间。如果我问这个违反了戒律,我道歉。你知道吗


Tags: 字符串用户列表string时间符号样式数组
3条回答

您当前修改word的方式是什么?为了确保每个字符都显示出来,您可以遍历string:如果string中索引i处的字母等于猜测值,请设置word[i] = guess。这样可以确保所有信件都被捕获。你知道吗

很高兴看到到目前为止有哪些代码能够为您指出正确的方向,但请看一下:

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))

每次你都需要在单词上循环:

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

要避免大小写问题,请对输入和c都使用str.lower。你知道吗

输出:

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

相关问题 更多 >