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

Python中如何在字典值中搜索多个字符串?求最优单行实现

单键值对字典多字符串匹配的单行优化实现

你的原代码存在逻辑问题:any(a,b,c in value for value in s.values())中,any()会将a、b直接作为布尔值判断(非空字符串恒为True),导致无论c是否存在都会输出"YES",这不符合实际需求。

针对仅含单个键值对的字典,以下是优化后的单行实现:

# 直接写死目标字符串的版本
print("YES" if any(term in next(iter(s.values())) for term in ["increment", "variable", "found"]) else "NO")

如果需要保留变量a/b/c,可以写成:

a, b, c = "increment", "variable", "found"
s = {'d':'want to increment the location variable based on which x is found'}
print("YES" if any(t in next(iter(s.values())) for t in [a,b,c]) else "NO")

核心优化点:

  • 用next(iter(s.values()))直接提取字典的唯一值,无需遍历所有值(因为已知只有一个键值对,效率更高)
  • 通过生成器表达式遍历所有目标字符串,any()会在找到第一个匹配项时立即停止判断,减少不必要的计算
  • 用三元表达式将判断与输出合并为一行,简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:59:54