首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中switch语句的替换?

Python中switch语句的替换?
EN

Stack Overflow用户
提问于 2008-09-13 08:36:31
回答 29查看 1.9M关注 0票数 1.7K

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

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

EN

回答 29

Stack Overflow用户

回答已采纳

发布于 2008-09-13 00:38:24

下面的原始答案是在2008年写的。从那时起,Python3.10 (2021)引入了match-case语句,它为Python提供了一流的"switch“实现。例如:

代码语言:javascript
复制
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语句比这个简单的示例要强大得多。

你可以使用字典:

代码语言:javascript
复制
def f(x):
    return {
        'a': 1,
        'b': 2,
    }[x]
票数 1.9K
EN

Stack Overflow用户

发布于 2008-09-19 23:45:15

如果您喜欢默认设置,可以使用字典get(key[, default])方法:

代码语言:javascript
复制
def f(x):
    return {
        'a': 1,
        'b': 2
    }.get(x, 9)    # 9 is default if x is not found
票数 1.5K
EN

Stack Overflow用户

发布于 2008-09-13 00:41:46

我一直喜欢这样做

代码语言:javascript
复制
result = {
  'a': lambda x: x * 5,
  'b': lambda x: x + 7,
  'c': lambda x: x - 2
}[value](x)

From here

票数 470
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档