有没有办法在字符串中替换一次字母?

is there a way to replace letters once in a string?

我 运行 遇到一个问题,它要么将所有 G 替换为 C,但没有将 C 替换为 G,我该怎么做才能解决这个问题? 我现在得到的输出是“GUGAGGGGAG” 我正在寻找的输出是“CUCAGCGCAG” 这是我到目前为止的代码:

a_string = "GAGTCGCGTC" 
remove_characters = ["G", "A", "T", "C"]
ch1 = "G"
ch2 = "A"
ch3 = "T"
ch4 = "C"
a_string = a_string.replace (ch1, "C")
a_string = a_string.replace (ch2, "U")
a_string = a_string.replace (ch3, "A")
a_string = a_string.replace (ch4, "G")
print (a_string)

您可以对小写字母进行替换,然后只有在所有替换完成后,才将字符串完全转为大写。

使用str.translate我们可以一次性改变整个字符串:

a_string = "GAGTCGCGTC"
string1 = "GATC"
string2 = "CUAG"
print(a_string.translate(str.maketrans(string1, string2)))

输出:

CUCAGCGCAG

在Python3中你可以使用translate:

a_string = 'GAGTCGCGTCTACACATGCAGTCGAACGGTAGCACAGAGAGCTTGCTCTCGGGTG' 
trans = {
    'G': 'C',
    'A': 'U',
    'T': 'A',
    'C': 'G'
}
print(a_string.translate(str.maketrans(trans)))
# CUCAGCGCAGAUGUGUACGUCAGCUUGCCAUCGUGUCUCUCGAACGAGAGCCCAC