溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中l(wèi)ambda表達式是什么

發(fā)布時間:2020-09-24 09:56:07 來源:億速云 閱讀:205 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)Python中l(wèi)ambda表達式是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

lambda表達式格式以及應用場景

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ù)第一個參數(shù)是一個lambda表達式,輸入一個對象,返回該對象的第一個元素。第二個就是需要作用的對象,此處是一個列表。Python3中map返回一個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))

上邊這個例子是為了說明,lambda表達式參數(shù)可以是多個。返回結(jié)果是[3,5,7,9]

例子:

a = [1,2,3,4,5,6,7]
a_1 = filter(lambda x:x<4,a)

如上例子,定義lambda表達式,篩選a列表中小于4的元素,結(jié)果為[1,2,3]。filter函數(shù)直接返回一個列表,無需再進行轉(zhuǎn)換,第三個是初始值,我們沒給初始值,那么開始操作的兩個元素就是序列的前兩個。否則將使用我們給出的初始值和序列第一個元素操作,然后結(jié)果再與第三個元素操作,以此類推。上個例子結(jié)果是28

例子:

from functools import reduce #python3需要導入此模塊
a = [1,2,3,4,5,6,7]
a_1 = reduce(lambda x,y:x+y,a)

reduce中使用的lambda表達式需要兩個參數(shù),reduce函數(shù)共三個參數(shù)。

第一個是就是lambda表達式,第二個是要累計的序列,第三個是初始值,我們沒給初始值,那么開始操作的兩個元素就是序列的前兩個。否則將使用我們給出的初始值和序列第一個元素操作,然后結(jié)果再與第三個元素操作,以此類推。上個例子結(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)

輸出(第一個升序,第二個降序):

[('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表達式是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI