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

Python如何合并两个字典列表并为共有元素添加confidence字段

问题原因

你原有代码的核心问题是使用了双重嵌套循环,每一对来自lst1和lst2的元素都会触发一次判断逻辑,会导致大量重复插入元素,非重叠的元素也会被多次添加到结果里,逻辑完全不符合需求。


正确实现方案

我们可以通过临时字典对所有key做去重和标记,时间复杂度为O(n+m),比双重循环效率更高,且输出顺序和你预期的完全一致:

lst1 = [
    {'key': 'data_collected.service_data'},
    {'key': 'gdpr.gdpr_compliance'},
    {'key': 'disclosure_of_information.purpose_of_disclosure'},
    {'key': 'opt_out.choice_of_opt_out'}
]
lst2 = [
    {'key': 'child_data_protection.parent_guardian_consent'},
    {'key': 'ccpa.ccpa_compliance'},
    {'key': 'disclosure_of_information.purpose_of_disclosure'},
    {'key': 'opt_out.choice_of_opt_out'}
]

# 用临时字典存储key对应的条目,键为字典的key字段值
key_map = {}

# 先遍历第一个列表存入临时字典
for item in lst1:
    key_map[item['key']] = item.copy()  # 加copy避免修改原列表里的字典,不需要可去掉

# 再遍历第二个列表处理重叠项
for item in lst2:
    current_key = item['key']
    if current_key in key_map:
        # key在两个列表都存在,添加confidence字段
        key_map[current_key]['confidence'] = 1
    else:
        # 新增key直接存入
        key_map[current_key] = item.copy()

# 提取所有值即为最终结果
res = list(key_map.values())
print(res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:39:00