You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将元组列表拆分为指定组数、长度可不均等的分组

指定分组总数拆分列表的实现

现有常见列表分块逻辑均为指定单个分块的元素个数,无法直接满足「固定拆分后的分组总数量」的需求,可通过动态计算单块长度实现目标效果:

  • 核心计算规则:先获取列表总长度,结合指定的分组数,计算出每组的基础元素个数,以及分配完基础数量后剩余的元素个数;剩余元素按顺序分配到靠后的分组中,每个对应分组多分配1个元素,和示例中10个元素分3组、最终分组长度为3/3/4的规则完全匹配。

实现代码

my_list = [(12,383),(44,23428),(858,12),(1231,59540),(3242,569324),(11,58435),(32, 1231),(13123,34324),(441, 1485),(12111,3923)]
# 指定需要拆分的总分组数
target_group_count = 3
total_len = len(my_list)
base_chunk_size, extra_num = divmod(total_len, target_group_count)

final = []
start_idx = 0
for group_idx in range(target_group_count):
    # 靠前的分组取基础长度,靠后的分组依次分配剩余的额外元素
    current_chunk_size = base_chunk_size if group_idx < target_group_count - extra_num else base_chunk_size + 1
    final.append(my_list[start_idx : start_idx + current_chunk_size])
    start_idx += current_chunk_size

# 打印结果
for chunk in final:
    print(chunk)

运行输出

[(12, 383), (44, 23428), (858, 12)]
[(1231, 59540), (3242, 569324), (11, 58435)]
[(32, 1231), (13123, 34324), (441, 1485), (12111, 3923)]

该逻辑适配列表长度动态变化的场景,不管是当前3000左右的元组量,还是后续每日新增元素,只要修改target_group_count的取值就能得到对应数量的分组,不会出现原有代码中固定单块长度、分组数随列表长度变动的问题。

内容的提问来源于stack exchange,提问作者KristiLuna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:57:32