Return 具有相同数量元素的列表

Return a list with same number of elements

我有一个程序可以将 DNA 序列转换为 RNA 序列。

翻译部分没问题。我卡住的地方是我输入了一个列表 四个元素的列表,但我返回的是一个包含单个元素的列表。

我的代码:

dnasequences = [
    'GCTAGCTAGCTAGCTA',
    'CTAGCTAGCTAGCTAG',
    'TAGCTAGCTAGCTAGC',
    'AGCTAGCTAGCTAGCT'
]

xlate = {'G': 'C', 'C': 'G', 'T': 'A', 'A': 'U'}


def dna2rna(sequences):
    rnalist = [xlate[n] for sequence in sequences for n in sequence]
    return rnalist

rnasequences = dna2rna(dnasequences)
print(''.join(rnasequences))

这个returns:

CGAUCGAUCGAUCGAUGAUCGAUCGAUCGAUCAUCGAUCGAUCGAUCGUCGAUCGAUCGAUCGA

翻译正确,但我希望 rnasequences() 包含四个 16 个字符的元素就像输入列表 dnasequences().

目前您的列表rnasequences包含单个字符的 64 个元素。您可以将此列表拆分为包含 16 个元素的较小列表并将它们连接起来,这样您就可以获得长度为 16 的字符串:

>>>[''.join(rnasequences[i:i+16]) for i in range(0, len(rnasequences), 16)]
['CGAUCGAUCGAUCGAU',
 'GAUCGAUCGAUCGAUC',
 'AUCGAUCGAUCGAUCG',
 'UCGAUCGAUCGAUCGA']

要了解拆分的工作原理,请查看 this 问题。