Python的lambda表達式

一. lambda表達式

Python中定義了一種快速簡化定義匿名函數(shù)的方式叫做lambda表達式盗似,它的作用就是代替一些簡單的函數(shù),使得代碼看上去更簡潔并且可讀性高沥邻。

  • lambda函數(shù)是匿名的
  • lambda函數(shù)一般功能簡單
  • lambda就是用來定義一個匿名函數(shù)的危虱,如果還要給他綁定一個名字的話,就會顯得有點畫蛇添足唐全,如語法規(guī)則里面的例子埃跷。
  • lambda函數(shù)有輸入和輸出,輸入是傳入到參數(shù)列表argument_list的值邮利,輸出是根據(jù)表達式expression計算得到的值弥雹。

二. lambda語法規(guī)則

lambda argument_list: expression
表達式由3部分構(gòu)成:ps.不要忘記冒號 ' : '

  • lambda關(guān)鍵字:Python的保留字,開始一個lambda表達式
  • argument_list:參數(shù)列表延届,和函數(shù)的參數(shù)表類似剪勿,表達式中出現(xiàn)的參數(shù)需要在argument_list中有定義
  • expression:函數(shù)的功能(簡單),并且表達式只能是單行的方庭,函數(shù)的返回值是該表達式的結(jié)果厕吉。
    舉個栗子:
add = lambda x, y : x+y
add(1,2)  # 結(jié)果為3

三. 用途

lambda表達式的使用酱固,一直爭議比較大,畢竟增加了程序員的閱讀成本头朱。一般來說运悲,作為匿名函數(shù)lambda經(jīng)常使用在函數(shù)的參數(shù)中,或者pandas數(shù)據(jù)篩選等等髓窜。
部分Python內(nèi)置函數(shù)接收函數(shù)作為參數(shù)扇苞。典型的此類內(nèi)置函數(shù)有這些欺殿。

  • map(function, iterable, ...)序列映射函數(shù):
    function是函數(shù)名寄纵,iterable...是一個或者多個序列;序列中的每一個元素調(diào)用 function 函數(shù)脖苏,返回包含每次 function 函數(shù)返回值的列表的迭代器程拭。
a=[1,2,3,4,5]
b=[1,1,1,1,1]
m=map(lambda x,y: x+y,a,b)
for i in m:
    print(i)

Out[1]:
2 3 4 5 6
  • sorted(iterable, cmp=None, key=None, reverse=False)排序函數(shù):
    sorted 可以對所有可迭代的對象進行排序操作。iterable是可迭代序列棍潘;cmp是定義比較規(guī)則的函數(shù)恃鞋,它具有兩個參數(shù),參數(shù)的值都是從iterable中取出亦歉,此函數(shù)必須遵守恤浪,大于則返回1,小于則返回-1肴楷,等于則返回0水由;key是定義比較元素的函數(shù),只有一個參數(shù)赛蔫,是從iterable中取出的砂客;reverse = True 降序 , reverse = False 升序呵恢。
    cmp很少自定義鞠值,默認遵循數(shù)學中的大小關(guān)系。
#按照年齡排序
student=[('Tom','boy',12),('Marry','girl',13),('LiMing','boy',11)]
s=sorted(student,key=lambda x:x[2],reverse=True)
print(s)

Out[2]:
[('Marry', 'girl', 13), ('Tom', 'boy', 12), ('LiMing', 'boy', 11)]
  • filter(function, iterable)序列過濾函數(shù):
    第一個參數(shù)為過濾函數(shù)名渗钉,第二個為序列彤恶,序列的每個元素作為參數(shù)傳遞給函數(shù)進行判,然后返回 True 或 False鳄橘,最后將返回 True 的元素放到新列表中返回粤剧。
student=[('Tom','boy',12),('Marry','girl',13),('LiMing','boy',11)]
s=filter(lambda x:x[1]=='boy', student)
Out[3]:
('Tom', 'boy', 12)
('LiMing', 'boy', 11)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挥唠,隨后出現(xiàn)的幾起案子抵恋,更是在濱河造成了極大的恐慌,老刑警劉巖宝磨,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弧关,死亡現(xiàn)場離奇詭異盅安,居然都是意外死亡,警方通過查閱死者的電腦和手機世囊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門别瞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人株憾,你說我怎么就攤上這事蝙寨。” “怎么了嗤瞎?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵墙歪,是天一觀的道長。 經(jīng)常有香客問我贝奇,道長虹菲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任掉瞳,我火速辦了婚禮毕源,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陕习。我一直安慰自己霎褐,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布该镣。 她就那樣靜靜地躺著冻璃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拌牲。 梳的紋絲不亂的頭發(fā)上俱饿,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音塌忽,去河邊找鬼拍埠。 笑死,一個胖子當著我的面吹牛土居,可吹牛的內(nèi)容都是我干的枣购。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼擦耀,長吁一口氣:“原來是場噩夢啊……” “哼棉圈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眷蜓,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤分瘾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吁系,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體德召,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡白魂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了上岗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片福荸。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肴掷,靈堂內(nèi)的尸體忽然破棺而出敬锐,到底是詐尸還是另有隱情,我是刑警寧澤呆瞻,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布台夺,位于F島的核電站,受9級特大地震影響栋烤,放射性物質(zhì)發(fā)生泄漏谒养。R本人自食惡果不足惜挺狰,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一明郭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丰泊,春花似錦薯定、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至学赛,卻和暖如春年堆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盏浇。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工变丧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绢掰。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓痒蓬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親滴劲。 傳聞我的和親對象是個殘疾皇子攻晒,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容