使用str.translate()将DNA转化为RNA

时间:2015-08-14 21:06:35

标签: python python-2.7

我试图使用Python将DNA代码转换为RNA代码......

我写这个:

print('Digite a sequência DNA a ser transcrita para RNA:')

my_str = raw_input()
print(my_str.replace('T', 'U'))

它有效,但是..现在我需要将 A转换为U T转换为A G转换为C C到G ......我看起来如何做到这一点,并做到了这一点:

print('Digite a sequência DNA a ser transcrita para RNA:')

my_str = raw_input()


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

my_str.translate(RNA_compliment)

但是我收到了这个错误:

Traceback (most recent call last):
  File "rna2.py", line 15, in <module>
    my_str.translate(RNA_compliment)
TypeError: expected a character buffer object

我做错了什么?

1 个答案:

答案 0 :(得分:5)

如果你想让一个表使用maketrans,你只能使用ord python3 的词典来获取 python2

from string import maketrans
i, j = "ATGC", "UACG"
tbl = maketrans(i,j)
my_str.translate(tbl)

使用python2:

In [1]: from string import maketrans

In [2]: i, j = "ATGC", "UACG"

In [3]: tbl = maketrans(i,j)

In [4]: my_str = "GUTC"

In [5]:  my_str.translate(tbl)
Out[5]: 'CUAG'