Python替换字母(_)

时间:2016-01-09 12:01:35

标签: python string random

我最近创建了一个Guessword游戏,我很难将列表中的所选世界作为下划线,然后需要插入一个字母,如果正确的话将被替换为_,有什么帮助吗?我最近在这一点,但不知道如何继续:P enter image description here

4 个答案:

答案 0 :(得分:2)

您可以根据未猜到的字母构建一个新字符串:

>>> guessed = ['e', 'o']
>>> word = 'hello'
>>> ''.join(c if c in guessed else '_' for c in word)
'_e__o'

然后你可以通过比较单词来测试是否完整:

>>> guessed = ['h', 'e', 'l', 'o']
>>> word = 'hello'
>>> word == ''.join(c if c in guessed else '_' for c in word)
True

答案 1 :(得分:1)

您可能想要创建一个列表并使用for循环来检测字母,以便在列表中插入字符:

s = 'hello'
secretWord = ['_' for i in s]

for ind, char in enumerate(s):
    if char =='e':
        secretWord[ind] = char

print(secretWord)            # ['_', 'e', '_', '_', '_']

print(''.join(secretWord))   # _e___

答案 2 :(得分:0)

您只想将单词转换为下划线吗?然后创建另一个具有相同长度下划线的字符串对象。例如:

>>> cW = 'Hello'
>>> ''.join('_' for i in s)
'_____'

>>> len(s) == len(''.join('_' for i in cW))
True

答案 3 :(得分:0)

您还可以对字符串使用replace()方法来替换特定字母。例如:

'this is a test'.replace('i','_')

将返回

th_s _s a test

要替换整个单词,只需创建一个长度相同的字符串,其中只包含_,如@Kevin Guan建议:

''.join('_' for letter in word)