站長在線Python教程:Python函數(shù)中的匿名函數(shù)詳解
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。
永久美國免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。
1、匿名函數(shù)的定義
所謂匿名函數(shù)就是沒有名字的函數(shù),在Python中使用lambda表示創(chuàng)建匿名函數(shù)。
2、匿名函數(shù)的表達(dá)式
name = lambda [arg1 [,arg2,...,argn]]:expression
相關(guān)參數(shù)如下:
name:用于調(diào)用lambda表達(dá)式。
[arg1 [,arg2,...,argn]]:可選參數(shù),用于指定要傳遞的參數(shù)列表,多個(gè)參數(shù)間使用逗號“,”分隔。
expression:必選參數(shù),用于指定一個(gè)實(shí)現(xiàn)具體功能的表達(dá)式。如果有參數(shù),那么在該表達(dá)式中將應(yīng)用這些參數(shù)。
3、匿名函數(shù)的注意點(diǎn)
lambda 函數(shù)可以接收任意多個(gè)參數(shù) (包括可選參數(shù)) 并且返回單個(gè)表達(dá)式的值。lambda 函數(shù)不能包含命令,包含的表達(dá)式不能超過一個(gè)。
4、匿名函數(shù)的優(yōu)點(diǎn):
4.1、使用Python寫一些腳本時(shí),使用lambda可以省去定義函數(shù)的過程,讓代碼更加精簡。
4.2、對于一些抽象的,不會(huì)被別的地方再重復(fù)使用的函數(shù),有時(shí)候函數(shù)起個(gè)名字也是個(gè)難題,使用lambda不需要考慮命名的問題
4.3、使用lambda在某些時(shí)候然后代碼更容易理解
示例:求一個(gè)兩個(gè)函數(shù)之和的函數(shù),普通的函數(shù)定義如下:
def add(x, y):
return x+ y
print(add(1,2))
運(yùn)行結(jié)果為:
3
>>>
使用匿名函數(shù)簡化為:
add = lambda x,y:x+y
print(add(1,2))
運(yùn)行的結(jié)果為:
3
>>>
5、匿名函數(shù)的應(yīng)用舉例
在內(nèi)置函數(shù) max() 求最大值,min()求最小值, sort()排序,map() 映射, reduce 合并, filter() 過濾等經(jīng)常應(yīng)用到。
本文以使用lambda表達(dá)式實(shí)現(xiàn)對學(xué)生成績列表的排序?yàn)槔?,講解匿名函數(shù)的應(yīng)用。
列:定義一個(gè)保存學(xué)生成績的列表,每個(gè)學(xué)生的信息保存在一個(gè)字典中,根據(jù)學(xué)生的成績排序。
student = [
{'id': '001', 'name': '張三', '語文': 95, '數(shù)學(xué)': 98, '外語': 90},
{'id': '002', 'name': '李四', '語文': 90, '數(shù)學(xué)': 92, '外語': 88},
{'id': '003', 'name': '王五', '語文': 92, '數(shù)學(xué)': 93, '外語': 96},
{'id': '004', 'name': '趙六', '語文': 91, '數(shù)學(xué)': 90, '外語': 86}
] # 保存學(xué)生成績的列表
student.sort(key=lambda x :x['語文']+x['數(shù)學(xué)']+x['外語'],reverse = True)# 按總成績排序
for item in student: # 遍歷輸出排序結(jié)果
print(item)
運(yùn)行結(jié)果如下:
{'id': '001', 'name': '張三', '語文': 95, '數(shù)學(xué)': 98, '外語': 90}
{'id': '003', 'name': '王五', '語文': 92, '數(shù)學(xué)': 93, '外語': 96}
{'id': '002', 'name': '李四', '語文': 90, '數(shù)學(xué)': 92, '外語': 88}
{'id': '004', 'name': '趙六', '語文': 91, '數(shù)學(xué)': 90, '外語': 86}
>>>
到此為止,Python函數(shù)中的匿名函數(shù)詳解就講解完畢了。有問題的,可以給我留言哦!
本文地址:http://003188.cn/pythonniminghanshu.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡