Python

Python switch の代わりを検討する

Pythonにはswitch文、case文が存在しない。代替手段を考える。

if文で分岐も良さそうだが、シンプルに考えると、辞書にして返すのが良さそう。

def f(x):
    return {
        "hoge": 0,
        "fuga": 1,
        "piyo": 2,
    }[x]

def f2(x):
    return {
        "foo": 0,
        "bar": 1,
        "baz": 2,
    }.get(x, -1)  # もし見つからなければ、-1を返す

print(f("hoge"))  # 0
print(f2("bar"))  # 1
print(f2(42))  # -1