如何将数据集划分为固定大小的等长相邻分组?
将列表划分为等长相邻子列表的方法
Python 实现方案
最直观简洁的方式是利用列表切片配合循环完成分组:
A = [1,2,3,4,5,6,7,8,9,10,11,12] group_size = 4 result = [A[i:i+group_size] for i in range(0, len(A), group_size)] print(result)
运行后输出结果:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
代码逻辑说明
range(0, len(A), group_size)生成分组的起始索引序列:0、4、8,对应每个子列表的起始位置A[i:i+group_size]从索引i开始截取长度为group_size的子列表,Python切片会自动适配边界(若列表长度不是分组大小的整数倍,最后一组会包含剩余所有元素)
如果需要强制要求列表长度必须是分组大小的整数倍,可以提前添加校验逻辑:
A = [1,2,3,4,5,6,7,8,9,10,11,12] group_size = 4 if len(A) % group_size != 0: raise ValueError("列表长度必须是分组大小的整数倍") result = [A[i:i+group_size] for i in range(0, len(A), group_size)]
内容的提问来源于stack exchange,提问作者czy
相关产品推荐
相关产品推荐

