同时.replace功能

Dea*_*ris 7 python string replace simultaneous python-3.3

我已经将用户输入的DNA代码(A,T,G,C)转换为RNA代码(A,U,G,C).这很容易

RNA_Code=DNA_Code.replace('T','U')
Run Code Online (Sandbox Code Playgroud)

现在我需要做的下一件事就是将RNA_Code转换成它的赞美链.这意味着我需要用U代替A,用A代替A,用C代替G,用G代替C.

如果我说

RNA_Code.replace('A','U')
RNA_Code.replace('U','A')
Run Code Online (Sandbox Code Playgroud)

它将所有的As转换为我们,然后将所有的Us转换为As,但我留下了所有的As.

我需要它来采取类似的东西AUUUGCGGCAAA并将其转换为UAAACGCCGUUU.

关于如何完成任务的任何想法?(3.3)

Mar*_*ers 14

使用翻译表:

RNA_compliment = {
    ord('A'): 'U', ord('U'): 'A',
    ord('G'): 'C', ord('C'): 'G'}

RNA_Code.translate(RNA_compliment)
Run Code Online (Sandbox Code Playgroud)

str.translate()方法采用从代码点(数字)到替换字符的映射.该ord()函数为我们提供了给定角色的代码点,使您可以轻松构建地图.

演示:

>>> RNA_compliment = {ord('A'): 'U', ord('U'): 'A', ord('G'): 'C', ord('C'): 'G'}
>>> 'AUUUGCGGCAAA'.translate(RNA_compliment)
'UAAACGCCGUUU'
Run Code Online (Sandbox Code Playgroud)


Ash*_*ary 6

您可以使用映射字典:

In [1]: dic={"A":"U","U":"A","G":"C","C":"G"}

In [2]: strs="AUUUGCGGCAAA"

In [3]: "".join(dic[x] for x in strs)
Out[3]: 'UAAACGCCGUUU'
Run Code Online (Sandbox Code Playgroud)