Python编程技巧:交替循环迭代两个迭代器。

下面这个技巧可以交替迭代两个迭代器,

1
2
3
4
5
import itertools

def switch_iter(iter1, iter2):
z = itertools.zip_longest(iter1, iter2) # or zip
return itertools.chain(*z)

例如,

1
2
3
4
5
6
7
8
9
10
>>> a = range(0, 10, 2)
>>> b = range(1, 11, 2)
>>> list(a)
[0, 2, 4, 6, 8]
>>> list(b)
[1, 3, 5, 7, 9]
>>> z = switch_iter(a, b)
>>> list(z)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

转载请包括本文地址:https://allenwind.github.io/blog/1480
更多文章请参考:https://allenwind.github.io/blog/archives/