概要

PythonにはCやJavaに見られるようなswitch-case文が存在しません。しかし、Python 3.10以降では新しいmatch-case構文が導入され、従来のswitch文に代わる便利な機能を提供しています。この記事では、Python 3.10以前の代替手法や、新しいmatch-case文の使い方を解説します。

Python 3.10以降のmatch-case構文

Python 3.10では、switch-case文に相当するmatch-caseが導入されました。この構文は、条件に応じた分岐を直感的に記述でき、複数のパターンに対するマッチングも可能です。

def check_value(value):
    match value:
        case 1:
            return "One"
        case 2:
            return "Two"
        case _:
            return "Other"

複雑なパターンマッチング

match-case文は、単純な値だけでなく、リストや辞書などの複雑なデータ構造に基づいて条件分岐を行うことができます。

def check_data(data):
    match data:
        case {"key": value}:
            return f"Key found: {value}"
        case _:
            return "No match"

Python 3.9以前の代替方法

Python 3.9以前では、if-elif構文や辞書を使った条件分岐が一般的です。

if-elifによる条件分岐

if-elif構文を使用すると、値に応じて異なる処理を実行できます。

def check_value(value):
    if value == 1:
        return "One"
    elif value == 2:
        return "Two"
    else:
        return "Other"

辞書を使った代替

辞書を使うことで、キーに基づいた条件分岐を実現できます。特定のキーが存在しない場合には、デフォルト値を設定することも可能です。

def check_value(value):
    return {
        1: "One",
        2: "Two"
    }.get(value, "Other")

結論

Python 3.10以降では、match-caseが推奨されるswitch-caseの代替となります。Python 3.9以前でも、if-elifや辞書を使って同様の条件分岐が簡単に実現できます。それぞれの手法を状況に応じて使い分けることで、より柔軟で読みやすいコードを記述できるようになります。