python小技巧--用字典映射代替switch case语句
2018-01-26 15:18
477 查看
python没有自己的switch case语句,官方推荐是用if else语句实现。但实际上用字典映射的方法也可以实现。
比如我们要实现在C语言里这样的代码:day =1
switch(day){
case 0 : day_name='Sunday';break;
case 1 : day_name='Monday';break;
default: day_name='unknown';break;
}用字典映射可以这样实现:
day = 1
switcher = {
0 : 'Sunday',
1 : 'Monday',
}
day_name = switcher[day]
但是这样有个小问题,switch case语句下每种情况都可以写很多代码,是个语句块。所以我们还可以这样来实现,将原来字典里映射的每种情况的字符串改为函数名。在函数下就可以完成更多的操作了。代码如下:
比如我们要实现在C语言里这样的代码:day =1
switch(day){
case 0 : day_name='Sunday';break;
case 1 : day_name='Monday';break;
default: day_name='unknown';break;
}用字典映射可以这样实现:
day = 1
switcher = {
0 : 'Sunday',
1 : 'Monday',
}
day_name = switcher[day]
但是这样有个小问题,switch case语句下每种情况都可以写很多代码,是个语句块。所以我们还可以这样来实现,将原来字典里映射的每种情况的字符串改为函数名。在函数下就可以完成更多的操作了。代码如下:
day = 5 def get_Sunday(): return 'Sunday' def get_Monday(): return 'Monday' def default(): return 'Unkown' switcher = { 0 : get_Sunday(), 1 : get_Monday() } day_name = switcher.get(day,default)() print(day_name)以上小技巧来源于慕课网上七月老师的视频~讲的超好
相关文章推荐
- Python笔记:替代case语句的字典和匿名函数(lambda)
- 字典映射代替switch
- python字典 switch语句
- 使用Action表驱动代替switch…case语句
- python语言没有switch-case语句
- python:一种代替 switch--case 的方法
- 用数组代替if-else和switch-case语句
- Python: 没有switch-case语句
- 使用Action表驱动代替switch…case语句
- python2.7通过字典实现java的switch-case模式匹配(代码有注释)
- python中没有switch/case语句
- Python为什么没有switch/case语句?
- python 实现switch/case语句
- Python switch/case语句实现方法
- 为什么Python中没有Switch/Case语句?
- 除了switch,PHP就不能像Python一样使用Map来代替多分枝条件语句吗? (只讨论技术)
- 基于proteus的51单片机仿真实例二十九、C语言的switch-case多分支选择语句
- java switch case 语句
- 个人认为不错的代码结构:利用switch case语句进行参数的取值校验
- switch case语句case后的枚举常量不带枚举类型