使用Python字典映射的方式实现其他语言中的switch...case语句

我们可以想到通过两种方式实现

方法1:用if ... else语句,这里不细讲。

方法2:用字典映射的方法

假设现在我们有一个字典如下:

switcher = {
    0 : ‘Sunday’,
    1 : ‘Monday’,
    2 : ‘Tuesday’
}
day_name = switcher[day]

我们可以通过这样的方式获取指定key下面的值,从而实现了switch..case语句。但对比switch...case语句,当我们需要实现几种情况都不满足时的默认情况时,这种写法就不能满足我们的需求。

这时,我们使用python字典的get方法,如下

day_name = switcher.get(day,  ‘Unknown’)  # 第二个参数为不存在时的默认值

这样就实现了上述需求。但如果我们需要在每个case里编写语句,在每个key的条件下实现一些方法,需要怎么做呢。

我们定义几个函数:

switcher = {
    0 : get_sunday,
    1 : get_monday,
    2 : get_thesday
}

def get_sunday():
    return ‘Sunday’

def get_monday():
    return ‘Monday’

def get_default():
    return ‘Unknown’

day_name = switcher.get(day,  get_default)()

这样就实现了我们的需求。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值