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

Python中如何检查字典列表中是否存在指定键值对组合

问题排查与修正方案

1. 核心逻辑错误

你代码里的判断逻辑完全颠倒了:

  • any(...)函数的作用是:只要迭代器中有任意一个元素为True,就返回True;所有元素都是False时返回False。
  • 你写的if not any(...),意思是「当没有任何字典符合stage_one='Started'且stage_two='Complete123'的条件时」,输出“values exists”——这和你实际想要的“存在则输出存在,不存在则输出不存在”完全相反。

2. 数据语法错误

你的data列表中,每个字典的结尾用了),这是语法错误,应该改成},否则代码会直接报错无法运行。

修正后的完整代码

首先修正数据格式:

data = [
    {'transaction':'abc123', 'stage_one':'Started', 'stage_two':'Complete',   'version': 12},
    {'transaction':'abc123', 'stage_one':'Started', 'stage_two':'started',    'version': 12},
    {'transaction':'abc123', 'stage_one':'Started', 'stage_two':'processing', 'version': 12},
    {'transaction':'abc123', 'stage_one':'Started', 'stage_two':'Complete',   'version': 12}
]

然后修正判断逻辑:

# 检查是否存在目标键值对组合
if any(d['stage_one'] == 'Started' and d['stage_two'] == 'Complete123' for d in data):
    print("values exists")
else:
    print("values don't exists")

如果需要更严谨(避免字典中缺少stage_one或stage_two键导致报错),可以添加键存在的判断:

if any(
    'stage_one' in d 
    and 'stage_two' in d 
    and d['stage_one'] == 'Started' 
    and d['stage_two'] == 'Complete123' 
    for d in data
):
    print("values exists")
else:
    print("values don't exists")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:32:37