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

Python如何从字典列表生成映射字典并合并字段到另一字典列表

Python字典列表匹配关联字段实现方案

生成映射字典的实现方法

你需要的lcreate映射字典可以直接通过Python字典推导式遍历keylist生成,一行代码即可完成:

lcreate = {item['p_id']: item['fam_id'] for item in keylist}

这段代码会逐个读取keylist中每个字典的p_id作为键、对应fam_id作为值,最终生成的结构和你预期的{'001': 'FAM98', '002': 'FAM1978', '003': 'FAM1978'}完全一致。

完整可运行代码

# 示例输入数据
keylist = [{'p_id':'001','fam_id':'FAM98','update':'2021-07-29'},{'p_id':'002','fam_id':'FAM1978','update':'2021-07-29'},{'p_id':'003','fam_id':'FAM1978','update':'2021-07-29'}]
persons = [{'person_id':'001','dob':'01-20-1997','mom_id':'34','color':'brown'},{'person_id':'002','dob':'12-05-2001','mom_id':'003', 'color':'black'},{'person_id':'003','dob':'01-02-1977','mom_id':'320', 'color':'brown'}]

# 生成p_id到fam_id的映射
lcreate = {item['p_id']: item['fam_id'] for item in keylist}

# 批量给persons添加fam_id字段
for dic in persons:
    dic["fam_id"] = lcreate[dic["person_id"]]

# 打印结果验证
print(persons)

方案说明

整体时间复杂度为O(n+m)(n为keylist长度、m为persons长度),比嵌套循环匹配的O(n*m)方案性能高很多,数据量越大优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 02:09:00