本篇文章給大家分享的是有關(guān)Python中l(wèi)ambda表達(dá)式是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、石峰網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
lambda表達(dá)式格式以及應(yīng)用場景
1、lambda函數(shù)與list的結(jié)合使用
list = lambda:x for x in range(10) print (list[0]) >>>9 list = lambda x:x for x in range(10) print (list[0]) >>>0
2、map,filter,reduce函數(shù)
例子:
a = [('a',1),('b',2),('c',3),('d',4)] a_1 = list(map(lambda x:x[0],a))
如上例子,map函數(shù)第一個(gè)參數(shù)是一個(gè)lambda表達(dá)式,輸入一個(gè)對象,返回該對象的第一個(gè)元素。第二個(gè)就是需要作用的對象,此處是一個(gè)列表。Python3中map返回一個(gè)map對象,我們需要人工轉(zhuǎn)為list,得到的結(jié)果就是[‘a(chǎn)’,’b’,’c’,’d’]
例子:
a = [1,2,3,4] b = [2,3,4,5] a_1 = list(map(lambda x,y:x+y,a,b))
上邊這個(gè)例子是為了說明,lambda表達(dá)式參數(shù)可以是多個(gè)。返回結(jié)果是[3,5,7,9]
例子:
a = [1,2,3,4,5,6,7] a_1 = filter(lambda x:x<4,a)
如上例子,定義lambda表達(dá)式,篩選a列表中小于4的元素,結(jié)果為[1,2,3]。filter函數(shù)直接返回一個(gè)列表,無需再進(jìn)行轉(zhuǎn)換,第三個(gè)是初始值,我們沒給初始值,那么開始操作的兩個(gè)元素就是序列的前兩個(gè)。否則將使用我們給出的初始值和序列第一個(gè)元素操作,然后結(jié)果再與第三個(gè)元素操作,以此類推。上個(gè)例子結(jié)果是28
例子:
from functools import reduce #python3需要導(dǎo)入此模塊 a = [1,2,3,4,5,6,7] a_1 = reduce(lambda x,y:x+y,a)
reduce中使用的lambda表達(dá)式需要兩個(gè)參數(shù),reduce函數(shù)共三個(gè)參數(shù)。
第一個(gè)是就是lambda表達(dá)式,第二個(gè)是要累計(jì)的序列,第三個(gè)是初始值,我們沒給初始值,那么開始操作的兩個(gè)元素就是序列的前兩個(gè)。否則將使用我們給出的初始值和序列第一個(gè)元素操作,然后結(jié)果再與第三個(gè)元素操作,以此類推。上個(gè)例子結(jié)果是28。
3、字典多條件排序
例子:
dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7} sorted_dict_asc = sorted(dict.items(),key=lambda item:item[0]) sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[0],reverse=True)
輸出(第一個(gè)升序,第二個(gè)降序):
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 3), ('f', 1), ('g', 7)] [('g', 7), ('f', 1), ('e', 3), ('d', 4), ('c', 3), ('b', 2), ('a', 1)]]
以上就是Python中l(wèi)ambda表達(dá)式是什么,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。