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

Python中如何比较两个字典列表的对应键的全部值是否匹配?

解决方案

以下是实现需求的Python代码:

list1 = [
    {'A':'a','B':'b','C':'c'},
    {'A':'aa','B':'bb','C':'cc'},
    {'A':'aaa','B':'bbb','C':'ccc'}
]

list2 = [
    {'A':'a','B':'b','C':'c'},
    {'A':'aa','B':'bb','C':'cc'},
    {'A':'aaa','B':'bbb','C':'ccc'}
]

# 获取所有待检查的键(假设两个列表内的字典键结构一致)
target_keys = list1[0].keys()

# 生成结果字典:每个键对应True仅当所有位置的字典值都匹配
match_result = {
    key: all(dict1[key] == dict2[key] for dict1, dict2 in zip(list1, list2))
    for key in target_keys
}

print(match_result)

代码说明

  1. 获取键集合:从list1的第一个字典中提取所有键,默认两个列表内的字典拥有完全相同的键(如果存在键不一致的场景,可以用set().union(*list1, *list2)获取所有存在的键)。
  2. 逐键验证匹配性:
    • 用zip(list1, list2)将两个列表中对应位置的字典配对。
    • 对每个键,遍历所有配对的字典,比较对应值是否相等。
    • all()函数会判断该键的所有位置是否全匹配:只要有一处不匹配,结果就为False;全部匹配则为True。

测试示例

如果修改list2的第二个字典:

list2 = [
    {'A':'a','B':'b','C':'c'},
    {'A':'aa','B':'bbx','C':'cc'},  # B键值改为bbx
    {'A':'aaa','B':'bbb','C':'ccc'}
]

运行代码后输出为:{'A': True, 'B': False, 'C': True},符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:55:20