有没有办法匹配 Python ≥ 3.10 中的不等式?

Posted

技术标签:

【中文标题】有没有办法匹配 Python ≥ 3.10 中的不等式?【英文标题】:Is there a way to match inequalities in Python ≥ 3.10? 【发布时间】:2021-12-11 01:45:06 【问题描述】:

Python 3.10 中新的结构模式匹配功能是一个非常受欢迎的功能。有没有办法使用这个语句来匹配不等式?原型示例:

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

【问题讨论】:

我个人会在匹配(不)等式而不是结构模式时使用简单的if elif else 语句。 【参考方案1】:

你可以使用guards:

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

另一种选择,没有保护,使用纯模式匹配:

match [a < 42, a == 42]:
   case [True, False]:
      print('Less')
   case [_, True]:
      print('The answer')
   case [False, False]:
      print('Greater')

【讨论】:

使用条件检查看起来很简洁。不错! 两种解决方案都很棒!谢谢 让我头疼。

以上是关于有没有办法匹配 Python ≥ 3.10 中的不等式?的主要内容,如果未能解决你的问题,请参考以下文章

您应该知道Python 3.10中的新特性!

Python 3.10 有哪些新特性 ?

Python 3.10 有哪些最新特性 ?

在其他两个保守字符串之间提取字符串并允许 python 或 R 中的不匹配

如何在匹配案例python 3.10中做一个else

[EuroPython 2021笔记] Python 3.10新功能开发者亲述:模式匹配案例实战