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