返回包含相同数量元素的列表

时间:2017-06-30 14:24:20

标签: list list-comprehension python-3.6

我有一个将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))

返回:

CGAUCGAUCGAUCGAUGAUCGAUCGAUCGAUCAUCGAUCGAUCGAUCGUCGAUCGAUCGAUCGA

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

1 个答案:

答案 0 :(得分:1)

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

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

了解分割工作如何查看this问题。