1. 程式人生 > >lambda 中if-elif-if

lambda 中if-elif-if

lse lam 一行 pan 字典 表示 elif 情況 spa

一般情況下:

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