如何匹配作为复制结果的精确列表

How to match exact list which is the result of a replication

如果我有一个列表是复制的结果,我该如何精确匹配它?

x = [1, 2] * 10000
match x:
  case list([1, 2] * 10000):
    print(1)

给予,

    case list([1, 2] * 10000):
                     ^
SyntaxError: invalid syntax

python 中的 switch case 现在不允许对 case 条件进行简单操作。

您可以使用另一个 class 来定义您的案例:

(有关详细信息,请查看文档 here

class Cases:
    A = [1, 2] * 10000
    B = [1, 2] * 100000


x = [1, 2] * 100000

match x:
    case Cases.A:
        print(1)
    case Cases.B:
        print(2)

输出:

2