lambda: Python 更加簡潔的函式寫法

 懶人包: lambda是為了快速定義單行函數而存在的簡潔方式

首先我們先定義一個加法的函數

def add(a,b):
    return a+b

那使用lambda的寫法呢?

add = lambda a,b : a+b

簡單來說

lambda 定義了一個匿名函數
而lambda 並不會帶來程序運行效率的提高,只會使代碼更簡潔。

如果可以使用for…in…if來完成的,堅決不用lambda。
如果使用lambda,lambda內不要包含循環,如果有,我寧願定義函數來完成,使代碼獲得可重用性和更好的可讀性。

參考來源:https://www.cnblogs.com/evening/archive/2012/03/29/2423554.html

那有沒有複雜一點的範例?有

以下附上使用Dict+Lambda來實作switch的範例:

點個餐範例

def switch(number):
  f1 = lambda :"蘋果派"
  f2 = lambda :"雞塊"
  f3 = lambda :"薯條"
  f4 = lambda :"飲料"
  return {
      1 : f1(),
      2 : f2(),
      3 : f3(),
      4 : f4()
  }.get(number, 0)
print(switch(2))

四則運算也滿好用的

def switch(s,a,b):
  f1 = lambda a,b: a+b
  f2 = lambda a,b: a-b
  f3 = lambda a,b: a*b
  f4 = lambda a,b: a/b
  return {
      '+' : f1(a,b),
      '-' : f2(a,b),
      '*' : f3(a,b),
      '/' : f4(a,b)
  }.get(s, 0)
print(switch("+",2,1))

 

Tags:

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *