用单个字符替换字符串中的所有字母
Substituting all letters from a string with a single character
我在 python 玩刽子手游戏,我卡在随机生成单词的部分,我试图通过用破折号替换所有字符来隐藏单词,如下所示:
生成的单词 -> 'abcd'
隐藏单词 -> _ _ _ _
我做了以下事情:
string = 'luis'
print (string.replace ((string[i]) for i in range (0, len (string)), '_'))
它给了我以下错误:
^
语法错误:生成器表达式必须加括号
请给我一些类型
您可以尝试一种非常简单的方法,例如:
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'
我在 python 玩刽子手游戏,我卡在随机生成单词的部分,我试图通过用破折号替换所有字符来隐藏单词,如下所示:
生成的单词 -> 'abcd' 隐藏单词 -> _ _ _ _
我做了以下事情:
string = 'luis'
print (string.replace ((string[i]) for i in range (0, len (string)), '_'))
它给了我以下错误:
^
语法错误:生成器表达式必须加括号
请给我一些类型
您可以尝试一种非常简单的方法,例如:
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'