Python 中 switch 语句的替代品?
2022-09-05 00:52:49
我想用Python编写一个函数,该函数根据输入索引的值返回不同的固定值。
在其他语言中,我会使用 or 语句,但 Python 似乎没有语句。在这种情况下,推荐的Python解决方案是什么?switch
case
switch
我想用Python编写一个函数,该函数根据输入索引的值返回不同的固定值。
在其他语言中,我会使用 or 语句,但 Python 似乎没有语句。在这种情况下,推荐的Python解决方案是什么?switch
case
switch
下面的原始答案写于2008年。从那时起,Python 3.10(2021)引入了match-case
语句,该语句为Python提供了“开关”的一流实现。例如:
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]
如果你想要默认值,你可以使用字典 get(key[, default])
函数:
def f(x):
return {
'a': 1,
'b': 2
}.get(x, 9) # 9 will be returned default if x is not found