用单个字符替换字符串中的所有字母



我正在用python做一个绞刑游戏,我被困在了我有一个随机生成的单词的部分,我试图通过用划线替换所有字符来隐藏这个单词,像这样:

生成字->"abcd"隐藏单词->_ _ _ _

我做了以下的事情:

string = 'luis'
print (string.replace ((string[i]) for i in range (0, len (string)), '_'))

它给了我以下错误:

^

SyntaxError: Generator expression must be parentheses

请给我一些类型

您可以尝试一个非常简单的方法,像这样:

word = "luis"
print("_" * len(word))

输出将是:

>>> word = "luis"
>>> print("_" * len(word))
____
>>> word = "hi"
>>> print("_" * len(word))
__

最简单的是:

string = "luis"
"_" * len(string)
# '____'

如果你想要空格:

" ".join("_" * len(string))
# '_ _ _ _'

但是,由于稍后需要显示猜测的字符,因此最好首先使用生成器:

" ".join("_" for char in string)
# '_ _ _ _'

这样你可以很容易地插入猜到的字符:

guessed = set("eis")
" ".join(char if char in guessed else "_" for char in string)
# '_ _ i s'