Python 用位置列表中的另一个字符替换字符串中的字符

Python 用位置列表中的另一个字符替换字符串中的字符,python,string,Python,String,如何用位于不同位置的另一个字符替换字符串中的某些字符? 例如,我有字符串:string=“******u”,列表:list=[0,2,4]和字符='a'。如何将字符串[0],字符串[2],字符串[4]替换为a?您可以尝试以下方法: s = "********u" l ={0,2,4} final_string = ''.join(["a" if i in l else a for i, a in enumerate(s)]) 输出: 'a*a*a***u' a*a*a***u 另一种方式:

如何用位于不同位置的另一个字符替换字符串中的某些字符? 例如,我有字符串:
string=“******u”
,列表:
list=[0,2,4]
字符='a'
。如何将
字符串[0]
字符串[2]
字符串[4]
替换为
a

您可以尝试以下方法:

s = "********u"
l ={0,2,4}
final_string = ''.join(["a" if i in l else a for i, a in enumerate(s)])
输出:

'a*a*a***u'
a*a*a***u
另一种方式:

your_string = list("********u")
your_list = [0,2,4]

for index_number in your_list:
    your_string[index_number] = 'a'

your_output = ''.join(your_string)
print(your_output)

只需使用函数并将参数作为索引、字符串和替换字符传递:

def replace(index_list,character,string):
    string=list(string)

    for index in index_list:
        string[index]=character
    return "".join(string)
print(replace([0,2,4],'a',"********u"))
输出:

'a*a*a***u'
a*a*a***u

在这种情况下,使用集合而不是列表更有效。集合有O(1)用于包含检查。@Vinny感谢您指出这一点。请看我最近的编辑。