簡體   English   中英

使用 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轉換為 UT 到 AG 到 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

我做錯了什么?

蟒蛇3:

  • 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'

蟒蛇2:

  • 如果要制作表格,請使用string.maketrans
  • 您只能將orddict用於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM