\

Python 3.10から導入された新機能の一つに、構造的パターンマッチングがあります。これは、matchcaseを使用した新しい構文で、値やデータ構造のパターンに基づいて処理を分岐させることができます。

# 基本的な使用例
a:int = 2
match a:
    case 1:
        print("this is 1")
    case 3:
        print("this is 3")
    case _:
        print("Other")  # Other

この例では、match文の後に評価したい変数aを指定し、その後にcase文を列挙しています。case文の後には、マッチさせたいパターンを記述します。このパターンがaの値と一致すれば、そのcase文の後の処理が実行されます。case _:はワイルドカードパターンで、どのcase文にもマッチしなかった場合に実行されます。

また、case文ではデータ型の判定も可能で、以下のように書くことができます。

match sample:
    case int(x) if sample > 0:
        print("sample is integer and greater than 0")
    case str(x) if sample == "hello":
        print("sample is string and  'hello'")
    case int(x):
        print("sample is integer")
    case str(x):
        print("sample is string")
    case _:
        print("other!")

このように、Pythonのcase文は非常に強力で、柔軟な条件分岐を実現することができます。ただし、case文は必ずマッチするため、複数あるcaseの最後に置く必要があります。また、case文でデータ型を判定したい場合にはclass(x)のように書くことができます。

以上、Python 3.10の新機能である構造的パターンマッチングとcase文について簡単に説明しました。この機能を理解し、適切に活用することで、よりPythonicなコードを書くことができるでしょう。

投稿者 admin

コメントを残す

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