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