我想了解Python的迭代器在pysam module的上下文中。通過在所謂的AlignmentFile類上使用fetch
方法,可以獲得由來自文件file
的記錄組成的正確的迭代器iter
。我可以使用各種不同的方法來訪問每個記錄(迭代器),比如名字與query_name
:Python消費一對迭代器
import pysam
iter = pysam.AlignmentFile(file, "rb", check_sq=False).fetch(until_eof=True)
for record in iter:
print(record.query_name)
它發生的記錄是成對出現的,這樣一想是這樣的:
while True:
r1 = iter.__next__()
r2 = iter.__next__()
print(r1.query_name)
print(r2.query_name)
調用下一個()可能不是百萬記錄的正確方法,但是如何使用for循環在成對迭代中使用相同的迭代器。我查看了itertools和SO Iterate an iterator by chunks (of n) in Python? [duplicate](甚至是重複的!)和What is the most 「pythonic」 way to iterate over a list in chunks?的石斑魚配方,但無法使其正常工作。
*「不能得到它的工作」 * - 正是你嘗試什麼,什麼地方出了錯?給一個[mcve]。注意你通常應該調用'next(thing)',而不是'thing .__ next __()'。 – jonrsharpe