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

如何在Python 3.10结构化模式匹配中用列表作为多匹配条件

解决方案

你可以通过**模式守卫(Guard Clause)**来实现需求,Python的结构化模式匹配允许在case后添加if条件判断,既能复用已定义的列表,又能保持代码的可读性。

修正后的代码如下:

direct_payments = ["creditcard", "debitcard"]
on_credits = ["gift card", "rewards program"]

def print_payment_type(payment_type):
    match payment_type:
        case _ if payment_type in direct_payments:
            print("You paid directly!")
        case _ if payment_type in on_credits:
             print("You paid on credits!")

print_payment_type("gift card")

说明

  • _是Python模式匹配中的通配符,用来匹配任意值,配合后面的if条件,就能实现“判断当前值是否在目标列表中”的逻辑。
  • 这种写法既保留了列表在其他代码场景中的复用性,又沿用了你偏好的结构化模式匹配语法,完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:00:46