前者只能处理不可打包的迭代。后者可以处理无法完全解包的可迭代对象,例如无限生成器。
考虑
>>> from itertools import chain>>> def inf():... i=0... while True:... i += 1... yield (i, i)... >>> x=inf()>>> y=chain.from_iterable(x)>>> z=chain(*x)<hangs forever>
此外,仅拆箱操作是一项急切的,前期成本高的活动,因此,如果您的迭代有效果,则希望懒惰地进行评估,这
from_iterable是您的最佳选择。



