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

如何在match语句中合并多个case值?

简化Python match-case多值匹配的方法

你想要的这种合并多个case的写法,Python模式匹配里不支持用逗号分隔(逗号会被解析为匹配元组,比如case 2,3会匹配value等于(2,3)这个元组,而非单个值匹配2或3),但有两种简洁的实现方式:

方式一:使用管道符|(或模式)

这是Python 3.10+模式匹配原生支持的语法,直接用|把多个值模式连起来:

match value:
    case 2 | 3 | 5 | 7 | 11 | 13 | 17 | 19:
        print('It is prime!')
    case _:
        print('It is not prime')

注意default是早期写法,Python官方推荐用_作为默认匹配项。

方式二:使用守卫条件(Guard)

如果要匹配的值数量较多,把它们放进集合里,用if守卫判断是否在集合中:

PRIMES = {2, 3, 5, 7, 11, 13, 17, 19}
match value:
    case x if x in PRIMES:
        print('It is prime!')
    case _:
        print('It is not prime')

这种方式更适合值数量多的场景,后期维护也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:44:57