我在Python中有两个迭代,我想成对地遍历它们:
foo = (1, 2, 3)
bar = (4, 5, 6)
for (f, b) in some_iterator(foo, bar):
print "f: ", f, "; b: ", b
Run Code Online (Sandbox Code Playgroud)
它应该导致:
f: 1; b: 4
f: 2; b: 5
f: 3; b: 6
Run Code Online (Sandbox Code Playgroud)
一种方法是迭代索引:
for i in xrange(len(foo)):
print "f: ", foo[i], "; b: ", b[i]
Run Code Online (Sandbox Code Playgroud)
但这对我来说似乎有点不合时宜.有没有更好的方法呢?
我有两个迭代器(A_subseq 和 B_subseq),每个迭代器都有两个产量输出(来自 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
Run Code Online (Sandbox Code Playgroud)
有谁知道我是否可以将这两个 for 循环结合起来,以便我可以同时计数 a_count 和 b_count?