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

Python判断字典列表是否包含多个指定键任意一个的方法

错误原因

(2,4) in d 是判断元组(2,4)本身是不是当前字典的键,示例里所有字典的键都是整数,不可能匹配到元组类型的键,自然出不来预期结果。

正确实现

集合交集写法(推荐)

把要检查的键存为集合,遍历字典时判断当前字典的键和目标键集合有没有交集即可。any自带短路逻辑,找到第一个符合条件的字典就停止遍历,执行效率高:

lod = [{1: "a"}, {2: "b"}, {3: "c"}, {4: "f"},{6:"x"}]
check_keys = {2, 4}
if any(check_keys & d for d in lod):
    print('yes')
else:
    print('nothing')

注:Python里字典参与集合运算时,会自动取字典的键做计算,不需要额外调用d.keys()。

双层遍历写法

适合待检查键数量少的场景,和你原来单键判断的逻辑一脉相承,显式遍历每个目标键做存在校验:

if any(key in d for d in lod for key in (2, 4)):
    print('yes')
else:
    print('nothing')

扩展:判断是否有字典同时包含2、4两个键

如果需求是找同时包含两个键的字典,把交集判断换成子集判断即可:

if any({2,4}.issubset(d) for d in lod):
    print('yes')
else:
    print('nothing')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:39:49