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

如何在值为列表的Python字典中验证特定键存在且对应列表包含目标值

解决字典中键对应列表的存在性验证问题

嘿,我明白你遇到的问题了!你的代码之所以没输出预期结果,是因为student_dict.items()返回的是键和整个列表组成的元组,比如("student2", ["football", "basketball"]),而你用(key, value)去匹配的话,相当于拿("student2", "football")和这个元组对比,显然不相等,所以条件不成立。

要实现“键存在且对应列表包含目标值”的验证,你需要把两个条件分开判断:

基础解决方案

先检查键是否存在于字典中,再检查目标值是否在该键对应的列表里,用and把两个条件结合起来:

student_dict = { 
    "student1": ["esports"], 
    "student2": ["football", "basketball"], 
    "student3": ["football"] 
}
key = "student2"
value = "football"

if key in student_dict and value in student_dict[key]:
    print("Sport present")

这样运行后就会输出你想要的Sport present啦!

进阶优化(避免KeyError)

如果你担心键不存在时访问student_dict[key]会抛出KeyError,可以用dict.get()方法,它会在键不存在时返回None,这样更安全:

if student_dict.get(key) is not None and value in student_dict.get(key):
    print("Sport present")

或者更简洁的写法:

if value in student_dict.get(key, []):
    print("Sport present")

这里get(key, [])表示如果键不存在,就返回一个空列表,value in []自然是False,不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:29:06