新聞中心
lambda是Python里的高階用法,要把代碼寫得Pythonic,就需要了解這些高階用法,想說(shuō)自己是一名真正的Python程序員,先要把代

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供南召網(wǎng)站建設(shè)、南召做網(wǎng)站、南召網(wǎng)站設(shè)計(jì)、南召網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、南召企業(yè)網(wǎng)站模板建站服務(wù),10多年南召做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
碼寫得Pythonic。
今天聊下Lambda的用法,寫篇簡(jiǎn)短的用法說(shuō)明。
Lambda是匿名函數(shù)的意思,在程序中有些簡(jiǎn)單的函數(shù)我們可能只會(huì)使用一兩次,這種情況下,你不必把它寫成一個(gè)函數(shù),而是用
Lambda的寫法,來(lái)讓程序更簡(jiǎn)潔。
Lambda的寫法原型是:
lambda 參數(shù):操作(參數(shù))
冒號(hào)左邊是傳入的參數(shù),冒號(hào)右邊是使用參數(shù)要做的操作。
比如
lambda x:x+1
上面的寫法等同于如下寫法,給參數(shù)加1,再返回:
def plus(x): return x+1
比如
lambda x,y:x*y
上面的寫法等同于:
def mul(x,y): retuen x*y
舉幾個(gè)實(shí)際的例子:
1、比如對(duì)list排序,如下簡(jiǎn)單的list
nums = [3, 1, 7, 4, 8, 10]
對(duì)nums按降序排列,這個(gè)很簡(jiǎn)單是吧:
>>>nums = [3, 1, 7, 4, 8, 10]>>>sorted(nums, reverse=True)>>>[10, 8, 7, 4, 3, 1]
如果是對(duì)嵌套list排序呢?
比如:nums = [[10, 20, 11], [3, 9, 6], [8, 14, 3]]
我們想按每個(gè)元素里的第二個(gè)值降序排列
直接用上面sorted的寫法就沒(méi)法排序,這個(gè)時(shí)候用lambda就很方便:
>>>nums = [[10, 20, 11], [3, 9, 6], [8, 14, 3]] >>>sorted(nums, key=lambda x:x[1], reverse=True) >>>[[10, 20, 11], [8, 14, 3], [3, 9, 6]]
這個(gè)嵌套列表就按沒(méi)想元素的第二個(gè)值降序排列好了,這個(gè)lambda的意思是返回元素的第二個(gè)值,它的寫法等同于如下:
>>>def lis(x): >>> return x[1] >>>sorted(nums, key=lis, reverse=True) >>>[[10, 20, 11], [8, 14, 3], [3, 9, 6]]
比較一下,用lambda寫代碼要簡(jiǎn)介很多。
2.再比如按字典的value進(jìn)行降序排序
nums = {'yuan':80, 'ren':93, 'xue':60}
nums = {'yuan':80, 'ren':93, 'xue':60}
sorted(nums, key=lambda x: nums[x], reverse=True)3.比如想取列表里的值
nums = [‘1’, ‘100’, ‘111’, ‘2’, 2, 2.57]
但是列表里還有字符串,沒(méi)法直接比較大小,怎么做,用lambda來(lái)處理。
>>>nums = ['1', '100', '111', '2', 2, 2.57] >>>max(nums, key=lambda x:int(x)) >>>'111'
這個(gè)寫法等同于
def trsn(x): return int(x) max(nums, key=trsn)
如果lambda結(jié)合map , filter 等高階Python語(yǔ)法,還有更多的用法。
如上用lambda的好處是,讓代碼更簡(jiǎn)潔,這是程序員對(duì)代碼的一種追求。壞處就是讓程序不太容易看懂,不過(guò)只要你搞清楚了lambda的用法,也沒(méi)那么難懂。
網(wǎng)頁(yè)名稱:創(chuàng)新互聯(lián)Python教程:學(xué)會(huì)Lambda,讓程序Pythonic一點(diǎn)
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/djgegge.html


咨詢
建站咨詢
