如何在Python中自动为二维数组添加内层数组以容纳超出元素
解决方案
方法1:计算所需组数后循环填充
先根据data的长度自动计算需要多少个内层数组(用(len(data) + 7) // 8实现向上取整,因为每组最多8个元素,8-1=7),再循环填充每个分组:
category_list = [] data = ['Category0', 'Category1', 'Category2', 'Category3', 'Category4', 'Category5', 'Category6', 'Category7', 'Category8', 'Category9', 'Category10'] # 自动计算需要的分组数 total_groups = (len(data) + 7) // 8 for i in range(total_groups): start = i * 8 end = start + 8 category_list.append(data[start:end])
运行后输出:
[ ['Category0', 'Category1', 'Category2', 'Category3', 'Category4', 'Category5', 'Category6', 'Category7'], ['Category8', 'Category9', 'Category10'] ]
方法2:用列表推导式简化代码
如果想更紧凑,一行代码就能完成分组逻辑,和方法1原理完全一致:
category_list = [data[i*8 : (i+1)*8] for i in range((len(data)+7)//8)]
方法3:迭代器逐段截取(适合大数据量)
如果data是超大数据集,用迭代器逐段截取可以避免一次性生成全量切片,节省内存:
from itertools import islice category_list = [] data_iter = iter(data) while True: group = list(islice(data_iter, 8)) if not group: break category_list.append(group)
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

