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

Python中如何判断if语句内or连接的多个子条件哪一个成立

Python 多or条件判断获取触发条件的实现方案

以下两种方案均无需显式编写for循环即可实现需求:

方案1:内置next()函数(全Python3版本兼容)

该方案逻辑与or的短路执行特性完全一致,优先返回第一个匹配成功的子条件对应的值,代码简洁易维护,适合子条件逻辑统一的场景:

my_list = ['A','B','C']
# 按or判断的顺序存放待匹配的目标值
check_targets = ['S', 'T', 'C']
# 生成器迭代匹配,无匹配结果时返回None
matched_val = next((item for item in check_targets if item in my_list), None)

if matched_val is not None:
    # 输出:yes,匹配成功的条件对应值为 C
    print(f'yes,匹配成功的条件对应值为 {matched_val}')

方案2:海象运算符(Python3.8及以上版本支持)

适合子条件逻辑不同、无法统一迭代的场景,可在判断时直接存储每个子条件的执行结果:

my_list = ['A','B','C']
if (
    (is_S_exist := 'S' in my_list)
    or (is_T_exist := 'T' in my_list)
    or (is_C_exist := 'C' in my_list)
):
    if is_S_exist:
        matched_val = 'S'
    elif is_T_exist:
        matched_val = 'T'
    else:
        matched_val = 'C'
    # 输出:yes,匹配成功的条件对应值为 C
    print(f'yes,匹配成功的条件对应值为 {matched_val}')

注:原示例中变量名my语义模糊易冲突,建议修改为my_list这类表意清晰的命名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:15:03