Python3.10から導入された新機能の一つに、match
文があります。match
文は、従来のif
文とは異なり、条件式に対応できないという落とし穴があります。しかし、その一方で、match
文はTrue/False
のような値や、特定の値が0の場合、1の場合といった条件分岐に非常に強いとされています。
以下に、match
文の基本的な使い方を示します。
value = 3.14
match value:
case 3:
raise Exception('失敗')
case 3.1415:
raise Exception('失敗')
case x:
assert x == 3.14
print('成功')
この例では、match
文の後に続くcase
文で、値が一致するかどうかでマッチングが行われます。case x:
の部分では、x
という名前が値3.14
に束縛されます。
また、match
文はif
文と同じように、for
文と組み合わせて使うことが多いです。以下に、for
文とmatch
文を組み合わせた例を示します。
list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []
for i in list:
match i:
case i if i % 2 == 0:
list_mult2.append(i)
case i if i % 3 == 0:
list_mult3.append(i)
case _:
list_others.append(i)
print(list_mult2)
print(list_mult3)
print(list_others)
この例では、リストの各要素に対して、2の倍数、3の倍数、それ以外の数を判定し、それぞれのリストに追加しています。
以上が、Python3.10の新機能であるmatch
文の基本的な使い方となります。この機能を理解し、適切に活用することで、よりPythonicなコードを書くことができるでしょう。