將多個迭代器連結在一起
使用 itertools.chain
建立一個生成器,它將按順序從多個生成器生成值。
from itertools import chain
a = (x for x in ['1', '2', '3', '4'])
b = (x for x in ['x', 'y', 'z'])
' '.join(chain(a, b))
結果是:
'1 2 3 4 x y z'
作為替代建構函式,你可以使用 classmethod chain.from_iterable
,它將單個引數作為可迭代的迭代。要獲得與上面相同的結果:
' '.join(chain.from_iterable([a,b])
雖然 chain
可以採用任意數量的引數,但 chain.from_iterable
是連結無數個迭代的唯一方法。