python學習之匿名函數

含義

不再使用def 語句定義函數。

爲了解決一些功能簡單的需求而使用一句話函數解決,

優點

  • 使用python寫一些腳本時,使用匿名函數可以省去定義函數得過程,讓代碼更精簡;
  • 對於一些抽象的,不會被別的地方重複使用的函數,使用lambda可以省去函數命名的過程;
  • 使代碼更易理解

格式

函數名 = lambda 參數 : 返回值


#定義多個參數時,使用逗號隔開

#調用時,直接函數名(參數)即可

實例

  • 單個參數匿名函數
def calc(n):
    return n**n
print(calc(10))

上面的代碼使用匿名函數爲:

calc = lambda n:n**n
print(calc(10))
  • 多個參數匿名函數
calc = lambda a,b,c:a*b*c
print(calc(1,2,3))
  • 對字典排序
infors = [{"name":"wang","age":11},{"name":"xiaoming","age":20},{"name":"banzhang","age":10}]
#根據age對字典排序
infors.sort(key=lambda x:x['age'])
print(infors)

#執行結果:
#[{'name': 'banzhang', 'age': 10}, {'name': 'wang', 'age': 11}, {'name': 'xiaoming', 'age': 20}]

  • lambda與其他功能函數合用
#注:map函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,並把結果作爲新的餓list返回。

res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)
  • 把lambda當成一個變量
#把lambda當成一個變量
def test(a,b,func):
    result = func(a,b)
    return result
num = test(11,22,lambda x,y:x+y)
print(num)












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章