私はpysam moduleのコンテキストでPythonのイテレータを理解しようとしています。いわゆるAlignmentFileクラスのfetch
メソッドを使用すると、ファイルfile
からのレコードで構成される適切なイテレータiter
が得られます。私が使用し、様々な方法がquery_name
で各レコード(反復可能)、インスタンスの名前にアクセスすることができます。Pythonは反復子をペアで使用します
while True:
r1 = iter.__next__()
r2 = iter.__next__()
print(r1.query_name)
print(r2.query_name)
:
import pysam
iter = pysam.AlignmentFile(file, "rb", check_sq=False).fetch(until_eof=True)
for record in iter:
print(record.query_name)
1のようなものをご希望のようにレコードが対になっていることが起こりますを次に呼び出す()はおそらく数百万のレコードに対して正しい方法ではありませんが、forループを使用してiterableのペアで同じイテレータをどのように使用することができますか?私はitertoolsとSOs Iterate an iterator by chunks (of n) in Python? [duplicate](さらに重複!)とWhat is the most “pythonic” way to iterate over a list in chunks?からグルーパーレシピを見ましたが、動作させることはできません。
「それが仕事を得ることができない」* * - まさにあなたがしようと、何が間違っていたのですか? [mcve]を与える。通常、 'thing .__ next __()'ではなく 'next(thing)'を呼び出すべきです。 – jonrsharpe