python - 在python 3.0中替换字符串的某个索引

标签 python string

我需要替换字符串中的一个字符,但这里有一个问题,字符串将全部是下划线,我需要能够替换与单词索引对应的下划线。例如:

underscore = '___'
word = 'cow'
guess = input('Input the your letter guess') #user inputs the letter o for example
if guess in word:
    underscore = underscore.replace('_',guess)

我需要修复的是被替换的下划线需要在三个下划线的第二位。我不想 underscore = 'o__' 而是 '_o_'

最佳答案

你只需要从 word 中排除所有其他字符,并像这样形成一个新字符串

def replacer(word, guess):
    return "".join('_' if char != guess else char for char in word)

assert(replacer("cow", "o") == "_o_")

即使猜测的字符多次出现,这也会起作用

assert(replacer("bannana", "n") == "__nn_n_")

replacer 函数逐个字符迭代word,在每次迭代中,当前字符将在char 变量中。然后,我们决定用什么来代替当前字符,在结果字符串中用

'_' if char != guess else char

这意味着,如果当前字符不等于猜测的字符,则使用 _ 否则按原样使用该字符。最后,所有这些字符都通过 "".join 连接在一起。

关于python - 在python 3.0中替换字符串的某个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374484/

相关文章:

python - linux软件生成的数据文件存放在哪里?

python - 在 field_name 中指定反向关系时,GeoDjango GeoQuerySet.distance() 结果为 'ST_Distance output only available on GeometryFields'

java - 将字符串添加到此字符串数组的最有效方法是什么?

c++ - 计数共现排序 vector 字符串 C++

string - 如何通过静态方法在 clojure 中进行 comp ?

java - 有没有办法从由特定字符分隔的字符串中提取值?

javascript - 从数组中提取值并将它们转换为字符串的最佳方法(允许 ES6)是什么?

python - 如何使用 dill 序列化类定义?

python - 如何防止 Azure 媒体服务作业使用 python 客户端意外截断输入 url?

python - 如何将 sklearn fit_transform 与 Pandas 一起使用并返回数据帧而不是 numpy 数组?