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