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

Python中能否将两个in判断语句合并实现简写?

合并多个in判断的实现方案

你尝试的if (5 and 17) in n:无法达到预期,是因为Python中的and是逻辑运算符,而非自然语义中的并列关系。运算时5属于真值,因此5 and 17会直接返回第二个真值17,整个判断等价于仅判断17 in n,自然无法满足同时校验两个元素存在的需求。

以下是两种常用的可行实现:

  • 方案1:使用all()内置函数,扩展性强,后续需要新增判断元素时只需在元组中追加即可:
n = [5, 3, 17]
# 所有待校验元素都在n中存在时才返回True
if all(item in n for item in (5, 17)):
    print("YES")

如果是需要判断多个元素任意一个存在,可以将all()替换为any()。

  • 方案2:使用集合的子集判断,写法更简洁,且集合查找的时间复杂度为O(1),在n数据量较大时性能更优:
n = [5, 3, 17]
if {5, 17}.issubset(n):
    print("YES")

如果仅需要判断2个元素,原始的if 5 in n and 17 in n:写法可读性更高,不需要为了简写而牺牲可维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:51:00