\

Python 3.10から導入された新機能、match文について解説します。match文は、if文のような使い方ができますが、より多機能で、複数のパターンと値を比較する場合に特に便利です。

match文とは

match文は、Python 3.10で新たに導入された構文で、値を複数のパターンと比較することができます。具体的な使い方は以下の通りです。

match 変数:
    case パターン1:
        return 返り値1
    case パターン2:
        return 返り値2
    case _:
        return 例外処理

上記のように書いたとき、変数がパターン1であれば返り値1、パターン2であれば返り値2、それ以外の値であれば例外処理の結果が返ってきます。

match文の使い方

以下に、if文とmatch文の使い方を比較した例を示します。

if文による処理

まずは一般的なif文を見てみましょう。ここでは数字を2の倍数、3の倍数、それ以外の順番に別々のリストに格納していくコードを記述します。

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:
    # 2 の倍数を格納
    if i % 2 == 0:
        list_mult2.append(i)
    # 3 の倍数を格納
    elif i % 3 == 0:
        list_mult3.append(i)
    # それ以外を格納
    else:
        list_others.append(i)

match文による処理

次に、実際にmatch文を使ってif文を書き換えてみましょう。サンプルコードは以下の通りです。

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:
        # 2 の倍数を格納
        case i if i % 2 == 0:
            list_mult2.append(i)
        # 3 の倍数を格納
        case i if i % 3 == 0:
            list_mult3.append(i)
        # その他
        case _:
            list_others.append(i)

このようにmatch文を使うと、if文よりもコードが読みやすくなります。

注意点

match文を使う際には、以下の点に注意が必要です。

  • match文のパターンには、計算処理を入れることはできません。例えば、i + 1といった処理を入れることはできません。
  • match文は必ずマッチするため、複数あるcaseの最後に置く必要があります。つまり、match文よりも後に他のcaseを書くことはできません。

以上、Pythonのmatch文の使い方について解説しました。この新機能をうまく使いこなすことで、よりPythonicなコードを書くことができます。ぜひ活用してみてください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です