协慌网

登录 贡献 社区

Python 中 switch 语句的替换?

我想在 Python 中编写一个函数,它根据输入索引的值返回不同的固定值。

在其他语言中,我会使用switchcase语句,但 Python 似乎没有switch语句。在这种情况下,推荐的 Python 解决方案是什么?

答案

你可以使用字典:

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

如果您想要默认值,可以使用字典get(key[, default])方法:

def f(x):
    return {
        'a': 1,
        'b': 2
    }.get(x, 9)    # 9 is default if x not found

我总是喜欢这样做

result = {
  'a': lambda x: x * 5,
  'b': lambda x: x + 7,
  'c': lambda x: x - 2
}[value](x)

从这里