Skip to main content
 首页 » 编程设计

python之你如何在 python 中替换和反转字符串

2025年05月04日49webabcd

这是我目前所拥有的,出于某种原因,它没有用 G 替换 C。为什么会这样?

DNASeq=raw_input("Enter the DNA sequence here: ") 
DNASeq=DNASeq.upper().replace(" ","") 
 
reverse=DNASeq[::-1] 
 
print reverse.replace('A','U').replace('T','A').replace('C','G').replace('G','C') 

请您参考如下方法:

问题是您将 C 替换为 G,然后将 G 替换为 C。一种防止从一个转到另一个的简单方法是将 C 替换为 g,这样它就不会返回到 C,然后大写结果:

gattaca="GATTACA" 
rev = gattaca[::-1] 
print rev.replace('A','u').replace('T','a').replace('C','g').replace('G','c').upper() 

这会正确输出 UGUAAUC 而不是像您的示例那样输出 UCUAAUC。

更新

但是,更 Pythonic 的方式,避免基于大小写的 hack,并且因为字符串不需要扫描五次而更有效,并且目的更明显,将是:

from string import maketrans 
transtab = maketrans("ATCG", "UAGC") 
print rev.translate(transtab)