2017-06-30 15 views
0

私はDNA配列をRNA配列に変換するプログラムを持っています。同じ数の要素を持つリストを返します

翻訳部分は正常に動作します。私が立ち往生しているところでは、4つの要素のリスト を入力していますが、1つの要素のリストが戻ってきています。

マイコード:

CGAUCGAUCGAUCGAUGAUCGAUCGAUCGAUCAUCGAUCGAUCGAUCGUCGAUCGAUCGAUCGA

翻訳が正しいことを、私はちょうど入力リストのような4 16文字の要素を含むようにrnasequencesを()欲しい:

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)) 

これを返しますdnasequences()。

答えて

1

現在、リストrnasequencesには、64文字の1文字が含まれています。スプリット作品はthis質問を見ているかを理解するには

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

:あなたは、あなたが長さ16の文字列を取得し、そのように16個の要素の小さなリストにこのリストを分割し、それらを結合することができます。

+0

あなたのソリューションは完全に機能し、あなたが提供したリンクを確認しました。すべての入力が同じ長さであるため、このソリューションが機能することが私には発生します。そうでない場合、この解決法は機能しません。入力リスト内のリスト要素の長さを出力リストに一致させる方法はありますか? – MarkS

関連する問題