python——匿名函數

什麼是匿名函數?
  匿名函數就是沒有名字的函數python

爲何要有匿名函數?
  由於隨着程序代碼的增多對於函數起名比較麻煩,而且有些函數只調用一次,那麼這種狀況,用匿名函數比較合適express


#如何定義一個匿名函數?函數

通常函數:
def test(x,y):
    return x + y
res = test(1,2)
print(res)
>>> 3 匿名函數: res = (lambda x,y: x+y)(1,2) print(res)
>>> 3

語法
lambda 函數的語法只包含一個語句,以下:spa

  lambda [arg1 [,arg2,.....argn]]:expression對象

  # lambda 參數列表:return [表達式] 變量
  # 因爲lambda返回的是函數對象(構建的是一個函數對象),因此須要定義一個變量去接收blog

實例一
  # 可寫函數說明
    sum = lambda x, y: x + y;
  # 調用sum函數排序

print ("相加後的值爲 : ", sum( 10, 20 ))
>>> 30
print ("相加後的值爲 : ", sum( 20, 20 )) 
>>> 40

實例二
  對字典排序io

infos = [
{'name':'zhangsan','age':23},
{'name':'lisi','age':24},
{'name':'wangwu','age':12},
{'name':'zhaoliu','age':33},
{'name':'liuer','age':23}
]
infos.sort(key=lambda x:x['age'])
print(infos)
>>> [{'name': 'wangwu', 'age': 12}, {'name': 'zhangsan', 'age': 23}, {'name': 'liuer', 'age': 23}, {'name': 'lisi', 'age': 24}, {'name': 'zhaoliu', 'age': 33}]

實例三class

把lambda當一個變量test

def test(a,b,func):
    result = func(a,b)
    return result

num = test(11,22,lambda x,y:x+y)
print(num)
>>> 33

匿名函數優勢
  • 使用Python寫一些腳本時,使用lambda能夠省去定義函數的過程,讓代碼更加精簡。

  • 對於一些抽象的,不會被別的地方再重複使用的函數,有時候函數起個名字也是個難題,使用lambda不須要考慮命名的問題

  • 使用lambda在某些時候而後代碼更容易理解

相關文章
相關標籤/搜索