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

Python中按code键映射两个字典列表并补全缺失字段的方法

Python字典列表按code键合并的实现方案

实现思路

  1. 先将my_list_a转换为以code为键的映射字典,便于快速查询对应code的基础信息;
  2. 遍历my_list_b,将每个元素与my_list_a中对应code的字典合并;
  3. 补充my_list_a中存在但my_list_b里没有的code条目,缺失的university字段填充为空字符串;
  4. 可选:对结果按code排序,与示例输出顺序一致。

代码实现

my_list_a = [
             {"code": "A", "name": "Mr A"},
             {"code": "B", "name": "Mrs B"},
             {"code": "C", "name": "Mrs C"}
]

my_list_b = [
             {"code": "A", "university": "Oxford"},
             {"code": "B", "university": "Stanford"},
             {"code": "B", "university": "Harvard"},
]

# 构建code到基础信息的映射
code_map = {item["code"]: item for item in my_list_a}

result = []

# 合并my_list_b中的条目
for b_item in my_list_b:
    code = b_item["code"]
    # 合并两个字典,保留双方字段
    merged_dict = {**code_map[code], **b_item}
    result.append(merged_dict)

# 补充my_list_a中独有的code条目
existing_codes = {item["code"] for item in my_list_b}
for code, a_item in code_map.items():
    if code not in existing_codes:
        result.append({**a_item, "university": ""})

# 按code排序,匹配示例输出顺序
result.sort(key=lambda x: x["code"])

# 输出结果
print(result)

输出结果

运行代码后会得到与你期望一致的列表:

[
 {"code": "A", "name": "Mr A", "university": "Oxford"},
 {"code": "B", "name": "Mrs B", "university": "Stanford"},
 {"code": "B", "name": "Mrs B", "university": "Harvard"},
 {"code": "C", "name": "Mrs C", "university": ""}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:18:22