Python swith表达式替代方案

Python里是没有像其他语言,如java里的switch...case这样的表达式。

替代方案一:map下标

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

使用下标的方式,可以很简洁的获取想要的值。但这种方法有一个弊端,如果不存在时,不能返回一个默认的值。

替代方案:使用if-elif

if x == 'a':
# 满足条件,进行处理
elif x == 'b':
# 满足条件,进行处理
if x in 'bc':
# 满足条件,进行处理
elif x in 'xyz':
# 满足条件,进行处理
else:
# 默认


版权声明:著作权归作者所有。

相关推荐

Java14新特性:Switch表达式

Java 14正式发布switch表达式特性。在之前的两个 Java 版本Java12,Java13,switch特性只是预览版。新的switch表达式有助于避免一些bug,因为它的表达和组合方式更容易编写。switch新的表达式有两个特点:支持箭头表达式返回。支持yied和return返回值。Java 14之前switch语法:switch (day) { case MONDAY:

Python单个表达式合并字典的方法

有时需要把两个字典合并为一个新的字典。这里记录下以下三种使用单个表达式的来做合并的方式。方式一:自定义合并函数def merge_dictionaries(first_dict, second_dict): merged = first_dict.copy() merged.update(second_dict) return mergedd1 = { "A": "张三", "B":

2018最新国内手机号码正则表达式

正则表达式^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$中国电信号段133、149、153、173、177、180、181、189、199中国联通号段130、131、132、145、155、156、166、175、176、185、186中国移动号段134(0-8)、135、136、137、138、139、147、150、151、152、157、

Spring定时任务@Scheduled的cron表达式

基本语法cron表达式由6-7个时间域组成,每个时间域之间用空格隔开。格式:<秒> <分> <时> <日期> <月> <星期> <年份> 秒:取值范围0-59分:取值范围0-59时:取值范围0-23日期:每月的的几数,0-31月:取值范围1-12,或英文简

ProgressDialog(deprecated )替代方案

ProgressDialog在API level 26被废弃,官方的解释是ProgressDialog是一个模态框(modal dialog),它会禁止与app的交互。可以在App的UI里嵌入ProgressBar作为它的替代方案。如果想实现模态框,也可以在AlertDialog里嵌入ProgressBar来实现。