2015-08-14 31 views
2

我想要的DNA代碼轉換成使用Python代碼RNA ...使用DNA到RNA str.translate()

我寫這篇文章:

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

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

和它的作品,但。現在我需要一個轉換至U噸至一個摹到CC到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 

我做錯了什麼?

+0

相關:http://stackoverflow.com/questions/21038891/what-does-table-the-string-translate-function-mean – NightShadeQueen

回答

5

如果你想使一個表使用maketrans,你只能用字典使用ordpython3python2

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' 
+0

@mu無,這是爲python2, OP使用的ord是python3 –

+1

@ mu無的字典,使它更清晰一些。 –

+1

它的工作!謝謝:) – Ricardo