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

Python ≥3.10版本中是否可通过结构模式匹配实现不等式匹配?

结构模式匹配实现不等式匹配的方法

你给出的直接在case后写< 42/== 42这类比较表达式的简写写法,Python目前并不支持,不过可以借助结构模式匹配的守卫条件实现完全相同的效果:

match a:
    case _ if a < 42:
        print('Less')
    case 42:
        print('The answer')
    case _ if a > 42:
        print('Greater')

上述代码里的_是通配符,可以匹配任意输入值,紧随其后的if子句就是守卫条件,只有条件判断为真时才会触发当前分支的逻辑。对于等值匹配的场景,直接写case 42:比加守卫的写法要更简洁,也符合模式匹配的设计习惯。

这种写法也支持更复杂的结构匹配+不等式判断的组合场景,比如匹配字典内指定字段的取值范围:

match goods_info:
    case {"price": price, "stock": stock} if price < 100 and stock > 0:
        print("符合低价有货的筛选条件")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:54:03