使用 str.translate() 将 DNA 转化为 RNA
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
我做错了什么?
python 3:
str.maketrans
is a static method, which returns a translation table usable for 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'
python 2:
- 如果要制作 table,请使用
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'
我正在尝试使用 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
我做错了什么?
python 3:
str.maketrans
is a static method, which returns a translation table usable forstr.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'
python 2:
- 如果要制作 table,请使用
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'