概要
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や辞書を使って同様の条件分岐が簡単に実現できます。それぞれの手法を状況に応じて使い分けることで、より柔軟で読みやすいコードを記述できるようになります。