lambda 中if-elif-if

Posted chen狗蛋儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda 中if-elif-if相关的知识,希望对你有一定的参考价值。

一般情况下:

if 条件1:
    语句1
elif 条件2:
    语句2
else:
    语句3

但如果要使用lambda一行表示if多条件,则:

lambda x: 语句1 if 条件1 else 语句2 if 条件2 else 语句3 
# 实际上是下面这样表达
lambda x: 语句1 if 条件1 else ( 语句2 if 条件2 else 语句3 )

例如: 将S变为0,C变为1,Q变为2:

>>> f = lambda x: 1 if x=="C" else 0 if x=="S" else 2
>>> f("S")
0
>>> f("C")
1
>>> f("Q")
2


>>> f = lambda x: 1 if x=="C" else (0 if x=="S" else 2)
>>> f("C")
1
>>> f("Q")
2
>>> f("S")
0

当然还可以通过一个字典来改变:

>>> di = {"S":0,"C":1,"Q":2}
>>> f = lambda x: di[x]
>>> f("S")
0
>>> f("Q")
2
>>> f("C")
1

 

以上是关于lambda 中if-elif-if的主要内容,如果未能解决你的问题,请参考以下文章

使用 savedInstanceState 保存和恢复 Kotlin lambda

IntelliJ:求值lambda表达式在调试时引发编译错误

Android开发太难了:Java Lambda ≠ Android Lambda (上)

Android开发太难了:Java Lambda ≠ Android Lambda (上)

Android开发太难了:Java Lambda ≠ Android Lambda (上)

DynamoDB 流 和 AWS Lambda 触发器