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

Python中如何检查多个值是否全部存在于字典的values中

实现方法说明

你之前直接判断值是否在字典中不生效,是因为Python的in运算符对字典默认检查的是键是否存在,如果要检查值是否存在,需要调用字典的.values()方法获取所有值的视图再判断。

简化实现代码

适配原有双参数输入的版本

直接利用in判断两个值是否都在字典的值中即可,不需要嵌套循环:

def check_value_exist(test_dict, value1, value2):
    return value1 in test_dict.values() and value2 in test_dict.values()

适配任意长度待检查值列表的通用版本

如果待检查的值数量不固定,可以结合Python内置的all()函数实现,适配list_values输入场景:

def check_all_values_exist(test_dict, value_list):
    # 所有待检查值都在字典的值中时才返回True
    return all(val in test_dict.values() for val in value_list)

使用示例

以你给出的word_freq字典为例:

word_freq = {
    "Hello": 56,
    "at": 23,
    "test": 43,
    "this": 78
}

# 双参数函数调用
print(check_value_exist(word_freq, 23, 43)) # 输出 True
print(check_value_exist(word_freq, 23, 100)) # 输出 False

# 通用列表版本调用
list_values = [23, 78, 56]
print(check_all_values_exist(word_freq, list_values)) # 输出 True

原有代码的逻辑问题

你原来编写的函数存在逻辑漏洞:只要匹配到任意一个待检查值,就会把do_exist设为True,后续即使有值匹配不到也不会修改这个状态,最终只能判断「至少有一个待检查值存在」,无法满足你「所有值都要存在」的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:45:02