[英]DNA to RNA using str.translate()
我正在嘗試使用 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
我做錯了什么?
str.maketrans
是一個靜態方法,它返回一個可用於str.translate()
的轉換表。i, j = "ATGC", "UACG"
tbl = str.maketrans(i, j)
my_str = "GUTC"
print(my_str.translate(tbl))
[out]:
'CUAG'
RNA_compliment
str.maketrans
接受一個參數作為字典{ord('A'): 'U', ord('T'): 'A', ord('G'): 'C', ord('C'): 'G'}
ord()
不是必需的# dict without ord
RNA_compliment = {'A': 'U', 'T': 'A', 'G': 'C', 'C': 'G'}
tbl2 = i.maketrans(RNA_compliment)
print(my_str.translate(tbl2))
[out]:
'CUAG'
string.maketrans
。ord
與dict
用於python3 ,而不能用於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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.