Python:如何在单个循环中同时迭代两个迭代器? (每个迭代器也有两个产量输出)

时间:2013-10-11 05:50:58

标签: python

我有两个迭代器(A_subseq和B_subseq),每个迭代器有两个yield输出(来自A_subseq的Aseq和Ahseq)。我需要保持两个迭代器的索引计数。如果我可以将两个for循环组合成一个循环,则可以这样做。

a和b都是迭代器。 k只是一个常数整数。

a_count = 0
b_count = 0

A_subseq = subsequenceHashes(a,k)
B_subseq = subsequenceHashes(b,k)

Match = Multidict()

for Aseq,Ahash in A_subseq:
    Match.put(Ahash,Aseq)

for Bseq,Bhash in B_subseq:
    b_count += 1
    if Bseq in Match.get(Bhash):
        yield xxx

有没有人知道我是否可以将这两个for循环结合起来,以便我可以同时计算a_count和b_count的数量?

1 个答案:

答案 0 :(得分:4)

我相信这就是你所追求的:

for (a, b), (c, d) in izip(iter1, iter2)

这是Python美容的属性之一