Python switch语句的巧妙实现

在其他一些语言里,如Java,C等,它们提供了switch语句来根据提供的值返回不同的结果。而在python里是没有类似的语句。

基本实现

使用Python的字典可以很简单实现switch语句的功能。

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

switch的default值

结合get()返回默认值:

def f(x):
return {
'a': 1,
'b': 2
}.get(x, 10)

如果没找到,返回默认值10。

使用函数计算返回值

可以定义函数来计算返回值:

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

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

相关推荐

Python比较字典的巧妙方法

Python里比较两个字典,可以比较两个字典有多少个是相同的键值对的。示例:>>> x = dict(a=1, b=6,c=3) >>> y = dict(a=2, b=2) >>> shared_items = set(x.items

Pandas对应SQL的in和not in实现

在Pandas提供了pd.isin(),使用它可以实现SQL的in和not in。not in 对应于:~a.isin(b) 示例:假如有以下dataframe数据,它包含了列data如下:>>> df   data 0   a 1   b 2 &nb

MySQL开启general_log查看执行的SQL语句

general log会记录下发送给MySQL服务器的所有SQL记录,因为SQL的量大,默认是不开启的。一些特殊情况(如排除故障)可能需要临时开启一下。开启MySQL的general logMySQL有三个参数用于设置general log:general_log:用于开启general log。ON表示开启,OFF表示关闭。log_output:日志输出的

Kotlin:循环语句for与while

For语句使用for语句做迭代需要满足:提供一个迭代器Iterator。使用成员函数提供迭代器如Array:operator fun iterator(): Iterator<T> 注意:iterator()函数需要使用operator标记。使用扩展函数提供迭代器除了添加成员函数iterator提供迭代器外,也可以通过extension function来添加iterator

Kotlin实现Java的三元条件运算

在Kotlin没有类似Java的三元条件运算:a ? b : c 在Kotlin有几种等效的方法:ifval r =if (a) b else c whenval r = when(a) {     true