把一组数据分成固定大小的小批次时,最后一批经常不足指定数量。代码应明确是否允许这个情况,而不是只处理整除部分,悄悄遗漏末尾数据。

先约定最后一批如何处理
itertools.batched在Python 3.12加入,按顺序产出元组,默认允许最后一批较短。下面把七项数据按三项一组,得到三、三、一的结构。若下游要求固定数量,就需要额外选择拒绝或补齐的业务规则。
迭代与一次性收集不同
batched按需消费输入,适合逐批处理;示例为了清楚展示结果,才将输出转成列表。面对大数据流时,不应又把所有批次一次装进内存,从而失去逐批处理的意义。
检查完整性而不仅是批次数
将批次重新展开,确认与原输入顺序一致,是一个有用的小检查。真实写入任务还需记录已完成批次和重试方式。分批只解决处理单元大小,不会自动提供事务、并发限制或防重复写入。
可以运行的练习
from itertools import batched
values = list(range(1, 8))
groups = list(batched(values, 3))
assert groups == [(1, 2, 3), (4, 5, 6), (7,)]
assert [item for group in groups for item in group] == values
print(groups)
示例已在本地隔离环境运行检查。使用固定输入,不访问外部接口,也不读取真实业务文件。
资料与继续学习
Python:itertools.batched。资料查阅日期:2026年9月25日。步骤与练习由本站整理。
资料查阅与编辑日期:2026年9月25日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






