Python中类似子字符串的替换问题

Python中类似子字符串的替换问题,python,string,Python,String,我已使用以下代码来处理此任务: dna = input('Enter:') b = {'A':'T', 'T':'A', 'C':'G', 'G':'C'} for x,y in b.items(): dna = dna.replace(x,y) print(dna) 然而,它似乎只替换了T和G,而忽略了A和C。你能解释一下为什么会发生这种情况,以及我应该如何避免这个问题吗。对Python来说还是很陌生的。提前谢谢你 您可以执行以下操作: dna = input('Enter:') b

我已使用以下代码来处理此任务:

dna = input('Enter:')
b = {'A':'T', 'T':'A', 'C':'G', 'G':'C'}
for x,y in b.items():
    dna = dna.replace(x,y)
print(dna)

然而,它似乎只替换了T和G,而忽略了A和C。你能解释一下为什么会发生这种情况,以及我应该如何避免这个问题吗。对Python来说还是很陌生的。提前谢谢你

您可以执行以下操作:

dna = input('Enter:')
b = {'A':'T', 'T':'A', 'C':'G', 'G':'C'}

dna = ''.join(b[x] for x in dna)
# or more robustly, ignoring unknown characters
# dna = ''.join(b.get(x, x) for x in dna)

这将在一次迭代中重新生成整个字符串,从而避免对初始方法进行来回替换。

基本上与相同的问题。首先将A转换为T,然后将T转换为A,其中包括先前替换的原始A。