將多個迭代器連結在一起

使用 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 是連結無數個迭代的唯一方法。