如何替换多个索引处的字符串(Python)?

我有一个字符串,我想替换该字符串某些索引处的字符。但我只知道如何替换一个字符,如果我得到一个索引使用:


word = word[:pos] + 'X' + word[pos + 1:]

pos 在这种情况下是索引。但是当我现在有一个多个索引的列表时(所以 pos 现在是一个列表),它不起作用,因为切片索引必须是整数。


这里有一些更多的代码来提供 mor 上下文:


string = 'HELLO WORLD'

secretword = ''.join('_' for c in string)


while True:

    userinput = input("Give me a letter\n").upper()

    if len(userinput) == 1:

        if userinput in string:

            pos = [i for i in range(len(string)) if string[i] == userinput]

            secretword = secretword[:pos] + userinput + secretword[pos + 1:] #this does not work

            print(secretword)


缥缈止盈
浏览 86回答 2
2回答

HUX布斯

我必须说您的代码有点笨拙且难以理解。但是,如果您想将相同的操作应用于索引列表,则只需遍历您的索引列表并应用相同的逻辑:pos_list = [i for i in range(len(string)) if string[i] == userinput]for pos in pos_list:    word = word[:pos] + 'X' + word[pos + 1:]

天涯尽头无女友

您可以简单地遍历数组:while True:    userinput = input("Give me a letter\n").upper()    if len(userinput) == 1:        if userinput in string:            pos = [i for i in range(len(string)) if string[i] == userinput]            for p in pos:                secretword = secretword[:p] + userinput + secretword[p+1:]            print(secretword)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python