为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的switch语句的替换?

Python中的switch语句的替换?

幕布斯7119047 2019-05-28 16:51:41
Python中的switch语句的替换?我想在Python中编写一个函数,它根据输入索引的值返回不同的固定值。在其他语言中,我会使用switch或case声明,但Python似乎没有switch声明。在这种情况下,推荐的Python解决方案是什么?
查看完整描述

4 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

你可以使用字典:

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


查看完整回答
反对 回复 2019-05-28
?
偶然的你

TA贡献1841条经验 获得超3个赞

我一直喜欢这样做

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

从这里


查看完整回答
反对 回复 2019-05-28
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

除了字典方法(我非常喜欢BTW)之外,您还可以使用if-elif-else来获取switch / case / default功能:

if x == 'a':
    # Do the thingelif x == 'b':
    # Do the other thingif x in 'bc':
    # Fall-through by not using elif, but now the default case includes case 'a'!elif x in 'xyz':
    # Do yet another thingelse:
    # Do the default

这当然与开关/箱子不一样 - 你不能像离开休息那样容易穿透; 声明,但你可以进行更复杂的测试。它的格式比一系列嵌套ifs更好,即使功能上它更接近它。


查看完整回答
反对 回复 2019-05-28
  • 4 回答
  • 0 关注
  • 1103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信