Python中实现列表按固定数量(每组7个)有序分组
将Python列表按固定大小分组(保留原顺序)
这里有几种实用的方法实现你的需求,1400刚好是7的倍数(1400÷7=200),最终会得到200组每组7个元素的列表;如果列表长度不是7的倍数,最后一组会自动保留剩余元素:
- 列表推导式(最简洁写法)
直接用切片语法一步生成分组:
# 替换成你自己的原始列表 original_list = [x for x in range(1400)] # 按每组7个元素切分 grouped_list = [original_list[i:i+7] for i in range(0, len(original_list), 7)]
原理:range(0, len(original_list), 7)会生成0、7、14...这样的起始索引,每次从原列表中截取从i到i+7的子列表,完全保留原顺序。
- itertools迭代器方式(适合超大列表)
如果你的列表占用内存很大,用迭代器的方式更高效,不会一次性生成所有子列表:
from itertools import islice original_list = [x for x in range(1400)] list_iter = iter(original_list) grouped_list = [] while True: # 每次从迭代器中取7个元素 current_group = list(islice(list_iter, 7)) if not current_group: break grouped_list.append(current_group)
- 手动循环(直观易理解)
适合刚学Python的人,能清晰看到分组过程:
original_list = [x for x in range(1400)] grouped_list = [] current_group = [] for item in original_list: current_group.append(item) # 当当前组满7个元素时,加入结果列表并重置 if len(current_group) == 7: grouped_list.append(current_group) current_group = [] # 处理最后一组可能剩下的元素(如果列表长度不是7的倍数) if current_group: grouped_list.append(current_group)
内容的提问来源于stack exchange,提问作者Turkey Once said
相关产品推荐
相关产品推荐

