回答问题的最后一部分:
问题更新:如何修改您提供的存储额外项目的功能,并在将下一个父亲列表提供给该功能时使用它们?
如果需要存储状态,则可以为此使用一个对象。
class Chunker(object): """Split `iterable` on evenly sized chunks. Leftovers are remembered and yielded at the next call. """ def __init__(self, chunksize): assert chunksize > 0 self.chunksize = chunksize self.chunk = [] def __call__(self, iterable): """Yield items from `iterable` `self.chunksize` at the time.""" assert len(self.chunk) < self.chunksize for item in iterable: self.chunk.append(item) if len(self.chunk) == self.chunksize: # yield collected full chunk yield self.chunk self.chunk = []
例:
chunker = Chunker(3)for s in "abcd", "efgh": for chunk in chunker(s): print ''.join(chunk)if chunker.chunk: # is there anything left? print ''.join(chunker.chunk)
输出:
abcdefgh



