Python 3.10では、新たな機能として「構造的パターンマッチング」が導入されました。この機能は、評価対象がパターンにマッチするかをチェックし、一致した場合の挙動を定義することができます。
構造的パターンマッチングは、match
とcase
というキーワードを使用します。
match expression:
case pattern1:
...
case pattern2:
...
ここで、expression
はPythonの式を指定し、pattern
の部分にはマッチさせるパターンを指定します。
パターンの種類
構造的パターンマッチングには多くのパターンがあります。以下にいくつかの主要なパターンを紹介します。
リテラルパターン
リテラルパターンでは、単純に値が一致するかどうかでマッチングを行います。
def check(data):
match data:
case 1:
print("失敗")
case 2:
print("成功")
case _:
print("値は不適切です。")
キャプチャパターン
キャプチャパターンは、case
の後ろの変数に値をキャプチャして処理をするパターンです。
def check(data):
match data:
case 1:
print("失敗")
case x:
print(f"成功: {x}")
ワイルドカードパターン
ワイルドカードパターンは、case
の後ろに_
を記述するパターンです。
def check(data):
match data:
case 1:
print("失敗")
case _:
print("値は不適切です。")
以上のように、Pythonの構造的パターンマッチングは非常に強力で、さまざまなパターンをサポートしています。これらのパターンを理解し、適切に活用することで、よりPythonicなコードを書くことが可能になります。