从一个可迭代对象一次产生多个对象?

问题描述

您的问题有点含糊,但请查看文档中的grouper食谱itertools

def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

(用相同的迭代器多次压缩[iter(iterable)]*n一个古老的技巧,但是将其封装在此函数中可以避免混淆代码,并且它是许多人将使用的相同的确切形式和接口。这是一个普遍的需求,有点可惜了。实际上不在itertools模块中。)

解决方法

如何从可迭代对象一次生成多个项目?

例如,对于任意长度的序列,我如何在每次迭代X个连续项目的组中迭代序列中的项目?