匿名函數(shù) python 使用 lambda 來創(chuàng)建匿名函數(shù),。 所謂匿名,,意即不再使用 def 語句這樣標(biāo)準(zhǔn)的形式定義一個函數(shù),。 lambda 只是一個表達式,函數(shù)體比 def 簡單很多,。 lambda的主體是一個表達式,,而不是一個代碼塊,。僅僅能在lambda表達式中封裝有限的邏輯進去。 lambda 函數(shù)擁有自己的命名空間,,且不能訪問自己參數(shù)列表之外或全局命名空間里的參數(shù),。 雖然lambda函數(shù)看起來只能寫一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),,后者的目的是調(diào)用小函數(shù)時不占用棧內(nèi)存從而增加運行效率,。 #!/usr/bin/python # -*- coding: utf-8 -*- sum=lambda arg1,arg2:arg1+arg2 print(sum(11,22))#33 ------------------------------------------------------ #排名成績 #!/usr/bin/python #Filename:support.py from operator import itemgetter students = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] print(sorted(students, key=lambda t: t[1])) ------------------------------------------------------ list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81] ------------------------------------------------------ 匿名函數(shù)有個好處,因為函數(shù)沒有名字,,不必擔(dān)心函數(shù)名沖突,。此外,匿名函數(shù)也是一個函數(shù)對象,,也可以把匿名函數(shù)賦值給一個變量,,再利用變量來調(diào)用該函數(shù): f = lambda x: x * x >>> f <function <lambda> at 0x101c6ef28> >>> f(5) 25 同樣,也可以把匿名函數(shù)作為返回值返回,,比如: def build(x, y): return lambda: x * x + y * y ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ 分享知識,,分享快樂!希望中國站在編程之巔,!
360圖書館館號:rsgz002.360doc.com |
|