以前写批量处理时,经常会自己切片或者手搓生成器。Python 3.12 起标准库里有个 itertools.batched,小脚本里挺顺手。
环境:Python 3.12+,只用标准库。保存成 batched-demo.py 跑:
from itertools import batched
items = ['a', 'b', 'c', 'd', 'e']
for group in batched(items, 2):
print(group)
输出大概是:
('a', 'b')
('c', 'd')
('e',)
最后一组不够数量时会保留下来,不会丢。拿来做分页请求、分批写入这种场景,比到处写 range(0, len(items), n) 清爽一点。