2017-02-25 8 views
-1

非常に長い文字列があり、2番目ごとの文字の後に文字列を分割する効率的な方法を探しています。 だから私は「NNATGDTA」の文字列から次のリストを取得したい: [「NN」、「AT」、「GD」、「TA」]Pythonで1秒おきに文字列を分割します

することができますリストに類似した任意の関数は()があり、結果は?あなたの助けのための

感謝:)

+0

は、あなたがこの問題を解決しようとする試みを作ったことがありますか?改善のために役立つコードがありますか? –

+0

私は何をしたいのかを書く機能を作ったが、それは本当に遅い。ここでは: def make_pairs(string、out): iの範囲(0、len(string)-2,2): out.write( "%s \ n" 2]) return – kmates

+0

's =" NNATGDTA ";範囲(0、len(s)、2)内のiに対してprint [s [i:i + 2]] ' –

答えて

-3

このコード:

def every_second_character(sequence, n): 
    while sequence: 
     yield sequence[:n] 
     sequence = sequence[n:] 

print(list(every_second_character("NNATGDTA",2))) 

が生成されます。

['NN', 'AT', 'GD', 'TA'] 
+1

[これはおそらくこれに基づいています](http://stackoverflow.com/questions/9475241/split-python-string-n-nth-character/9475270#9475270):*実際には効率的ではありません:文字列に適用すると、コピーが多すぎます。 –

+0

ご協力いただきありがとうございます。残念ながら私の文字列の長さは250522664なので、実際は長いので、上記のコードは遅すぎます。しかし、私の文字列から個々の文字を作るlist()関数を試してみたら、はるかに高速でした。だから、私の問題に似た機能があることを願っています。 – kmates