所以我试图找到一种方法来替换字符串中的项目,但我似乎失败了

So I'm trying to find a way to replace the items in a string but I seem to be failing

所以我得到了这个列表: 视觉 = ['_', '_', '_'] 然后用户输入一个随机字母来找到结束词(游戏是刽子手)我有办法打印出来但它看起来像这样:

_

o

_

而我希望它看起来像这样: _ o _ 要么: ['_', 'o ', '_'] 我不介意哪个更喜欢第一个。

到目前为止我有这个:

visuals = ['_ ', '_ ', '_ ']

userInput = input("Enter a letter to guess: ")

index = 0

for ch in hangmanWord:

    index += 1

    if ch == userInput:

        visuals = [w.replace([index], userInput) for w in visuals]

        print(visuals)

但最后一行似乎不起作用(我认为这是替换行)它只是这样出来的:

   ['_ ', '_ ', '_ ']

我希望用户输入替换下划线。

抱歉太长了。非常感谢帮助。

index += 1 移动到 if 语句之后,使替换从 0 开始。

对于替代品,只需使用visual[index] = userInput。它将根据索引编辑visual

这个脚本解决了问题

>>> hangmanWord = "hello"
>>> visuals = ['_'] *len(hangmanWord)
>>> ended = False
>>> while not ended:
...     userInput = raw_input("Enter a letter to guess: ")
...     for idx,ch in enumerate(hangmanWord):
...         if userInput == hangmanWord[idx]:
...             visuals[idx] = userInput
...     print visuals
...     ended = '_' not in visuals
... 
Enter a letter to guess: a
['_', '_', '_', '_', '_']
Enter a letter to guess: h
['h', '_', '_', '_', '_']
Enter a letter to guess: e
['h', 'e', '_', '_', '_']
Enter a letter to guess: l
['h', 'e', 'l', 'l', '_']
Enter a letter to guess: o
['h', 'e', 'l', 'l', 'o']