Python 3.10では、新たな構文としてmatch-case
が導入されました。この構文は、値に応じた処理の分岐を行うためのもので、条件分岐が厳密に定められることや、条件が入れ子になってしまった場合にもスッキリとまとまることが特徴です。
def f(x):
match x:
case 'a':
return 1
case 'b':
return 2
上記の例では、関数f
の引数x
が'a'
であれば1
を、'b'
であれば2
を返すという処理を行っています。
また、match-case
構文は、リストやタプルなどのデータ構造に対する分岐も可能です。
point = (33, 4)
match point:
case (0, 0):
print("原点")
case (0, y):
print(f"Y={y}")
case (x, 0):
print(f"X={x}")
case (x, y):
print(f"X={x}, Y={y}")
case _:
print("座標ではありません")
この例では、タプルpoint
の要素に応じて異なるメッセージを出力しています。
match-case
構文は、Pythonのコードをより明確で読みやすくするための強力なツールです。特に、複雑な条件分岐を必要とする場合や、データ構造に基づいた処理を行う場合には、その真価を発揮します。