【问题标题】:python structural pattern matching for string containing float包含浮点数的字符串的python结构模式匹配
【发布时间】:2023-01-14 07:31:24
【问题描述】:

如何为以下用例使用结构模式匹配:

values = ["done 0.0", "done 3.9", "failed system busy"]

for v in values:
   vms = v.split()
   match vms:
       case ['done', float()>0]: # Syntax error
           print("Well done")
       case ['done', float()==0]: # Syntax error
           print("It is okay")
       case ['failed', *rest]:
           print(v)

请原谅我的语法错误,我写这篇文章是为了展示我的思维过程。

实现这种模式匹配的正确语法是什么?有可能吗?

【问题讨论】:

    标签: python pattern-matching


    【解决方案1】:

    您可以使用匹配库来实现模式匹配。这是一个例子:

    from match import match
    
    values = ["done 0.0", "done 3.9", "failed system busy"]
    
    for v in values:
        vms = v.split()
    
        match(vms) as m:
            if m.case(['done', float() > 0]):
                print("Well done")
            if m.case(['done', float() == 0]):
                print("It is okay")
            if m.case(['failed', *rest]):
                print(v)
    

    【讨论】:

      猜你喜欢
      • 2015-04-23
      • 1970-01-01
      • 2017-12-03
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 2019-04-24
      • 2015-09-29
      相关资源
      最近更新 更多