1. ホーム
  2. python

[解決済み] Pythonのswitch文の代用品?

2022-03-17 23:49:03

質問

入力されたインデックスの値に応じて異なる固定値を返す関数をPythonで書きたいのですが、どうすればいいですか?

他の言語では、私は switch または case ステートメントがありますが、Pythonには switch ステートメントを使用します。 このシナリオで推奨されるPythonの解決策は何でしょうか?

どのように解決するのか?

以下のオリジナルの回答は2008年に書かれたものです。それ以来、Python 3.10(2021)には match - case これは Python の "switch" の第一級の実装を提供するステートメントです。例えば

def f(x):
    match x:
        case 'a':
            return 1
        case 'b':
            return 2
        case _:        
            return 0   # 0 is the default case if x is not found

match - case ステートメントは、この単純な例よりもかなり強力です。


辞書を使えばいいんだよ。

def f(x):
    return {
        'a': 1,
        'b': 2,
    }[x]