Python 3.10では、新たにmatch-case文が導入されました。これは他の言語でいうところのswitch-case文に相当します。特に、複数のケースを一度に扱う方法について説明します。

複数のケースを一度に扱う

match-case文では、一つのcase文で複数のパターンを扱うことができます。具体的には、以下のように|(OR)を使って複数のリテラルを一つのパターンとして指定することができます。

def sayHi(name):
    match name:
        case 'Egide' | 'Eric':
            return f"Hi Mr {name}"
        case 'Egidia':
            return f"Hi Ms {name}"

この例では、name'Egide'または'Eric'の場合に"Hi Mr {name}"を返し、name'Egidia'の場合に"Hi Ms {name}"を返します。

ガード節を使った複数のケースの扱い方

また、ifを使ったガード節を使うことで、リストなどのイテラブルなオブジェクトに含まれる要素に対するマッチングも可能です。

CONSTANTS = ['a', 'b', 'c', ...]  # a (possibly large) iterable

def demo(item):
    match item:
        case item if item in CONSTANTS:
            return f"{item} matched"
        case _:
            return f"No match for {item}"

この例では、itemCONSTANTSに含まれる場合に"{item} matched"を返し、それ以外の場合に"No match for {item}"を返します。

以上、Python 3.10のmatch-case文で複数のケースを扱う方法について説明しました。この機能を活用することで、より柔軟な条件分岐を実現できます。

投稿者 admin

コメントを残す

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