给定一个块大小列表,如何将可迭代对象划分为可变长度块?我正在努力哄itertools.islice
还没有成功。
for chunk_size in chunk_list:
foo(iter, chunk_size)
你需要做一个iter
你的可迭代对象,这样你就可以调用islice
其上具有特定的尺寸,并在下一次迭代中从上次停下的地方继续。这是生成器函数的完美用途:
def uneven_chunker(iterable, chunk_list):
group_maker = iter(iterable)
for chunk_size in chunk_list:
yield itertools.islice(group_maker, chunk_size)
Example:
>>> iterable = 'the quick brown fox jumps over the lazy dog'
>>> chunk_size = [1, 2, 3, 4, 5, 6]
>>> for item in uneven_chunker(iterable, chunk_size):
... print ''.join(item)
...
t
he
qu
ick
brown
fox j
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)