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

如何按字典指定的不等长规则拆分Python列表并保留原有顺序

Python按指定规则拆分列表实现方案

需求说明

有一个待拆分的列表,以及一个定义拆分规则的字典:字典的key对应拆分后结果的索引,value对应该索引下子列表的长度,要求拆分过程保留原列表的元素顺序。

示例输入

# 待拆分原列表
l = [14, 10, 2, 4, 12, 8, 8, 5, 9, 2, 7]
# 拆分规则字典
dico = {0: 4, 1: 4, 2: 3}

期望输出

{0: [14, 10, 2, 4], 1: [12, 8, 8, 5], 2: [9, 2, 7]}

实现代码

def split_list_by_rule(raw_list, split_rule):
    result = {}
    current_start = 0
    # 按索引升序遍历规则,保证拆分顺序正确
    for idx in sorted(split_rule.keys()):
        sub_len = split_rule[idx]
        result[idx] = raw_list[current_start : current_start + sub_len]
        current_start += sub_len
    return result

# 测试调用
if __name__ == "__main__":
    l = [14, 10, 2, 4, 12, 8, 8, 5, 9, 2, 7]
    dico = {0: 4, 1: 4, 2: 3}
    print(split_list_by_rule(l, dico))

代码说明

  • 用current_start变量记录每次切分的起始位置,初始值为0
  • 对规则字典的key做升序排序后遍历,兼容所有Python版本的字典顺序问题,确保拆分顺序和原列表顺序一致
  • 通过列表切片操作切取指定长度的子列表,自动保留原列表的元素顺序
  • 每切完一个子列表就更新current_start的位置,作为下一次切分的起始下标
    运行上述代码即可得到符合要求的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:09:03