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

如何根据键名前缀及给定数组拆分Python字典为多个子字典

实现方案

首先注意不要用dict作为变量名,会覆盖Python内置的dict类型,建议重命名为origin_dict。
推荐先用一个总字典收纳所有拆分后的子字典,取值、遍历都更方便,如果需要单独的dict1/dict2变量也可以额外生成,完整实现如下:

origin_dict = {'1_100': 50, '1_102': 100, '2_100': 150, '2_102': 200, '3_100': 50, '3_102': 100}
narray = [1, 2, 3, 4, 5]

# 总结果字典,key是前缀,value是对应拆分后的子字典
result = {}
# 提前把narray转成字符串集合,匹配效率更高
valid_prefix = set(map(str, narray))

for k, v in origin_dict.items():
    # 取键名下划线前的前缀
    prefix = k.split('_')[0]
    # 仅处理在narray中存在的前缀
    if prefix not in valid_prefix:
        continue
    # 对应前缀的子字典不存在则自动创建
    if prefix not in result:
        result[prefix] = {}
    result[prefix][k] = v

# (可选)如果需要生成单独的dict1、dict2变量,加下面这段即可
for prefix, sub_dict in result.items():
    globals()[f'dict{prefix}'] = sub_dict

运行后result的结构为:

{
  '1': {'1_100': 50, '1_102': 100},
  '2': {'2_100': 150, '2_102': 200},
  '3': {'3_100': 50, '3_102': 100}
}

生成单独变量后,可直接调用dict1/dict2/dict3,完全符合你期望的输出格式。
这个方案适配任意数量的前缀、任意数量的同前缀键,不需要提前固定拆分规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:01