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

Python如何合并两个字典 将同键对应值组合为列表

Python同键字典合并为值列表实现方案

你之前触发的TypeError: string indices must be integers报错,本质是代码中误对字符串类型变量使用了键名索引(仅字典支持该操作,字符串只能用整数下标取值),常见触发场景如下:

  • 误将未解析的JSON格式字符串直接当成字典,按键名取值,没有提前调用json.loads()做类型转换
  • 遍历字典时逻辑编写错误,取到字符串类型的键值后,继续对该字符串使用键名索引

基础实现(两个字典键完全一致场景)

你的示例中两个字典的键完全匹配,直接用字典推导式遍历公共键、按顺序组装值列表即可:

# 原始字典定义
dmx={'a': 0, 'b': 3, 'c': 9, 'd': 2, 'e': 4}
dx={'a': 2, 'b': 4, 'c': 9, 'd': 5, 'e': 1}

# 合并逻辑:相同键对应值按「dx值在前、dmx值在后」组装为列表
d = {k: [dx[k], dmx[k]] for k in dx}

执行后得到的d完全匹配预期结构:

{'a': [2,0], 'b': [4,3], 'c': [9,9], 'd': [5,2] ,'e': [1,4]}

兼容实现(两个字典键不完全对齐场景)

如果后续使用场景中两个字典存在键不统一的情况,可以先取两个字典所有键的并集,对缺失值做默认填充(示例默认填充None),避免触发KeyError:

# 取两个字典所有键的并集
all_keys = dmx.keys() | dx.keys()
d = {k: [dx.get(k), dmx.get(k)] for k in all_keys}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:39:31