lambda 中if-elif-if
阿新 • • 發佈:2018-04-09
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