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

时间:2018-09-08 18:59:29

标签: 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来说还是很新的。预先谢谢你!

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

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)

这将在一次迭代中重建整个字符串,从而避免了最初方法的来回替换。