本篇文章給大家分享的是有關Python中lambda表達式是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
lambda表達式格式以及應用場景
1、lambda函數與list的結合使用
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函數
例子:
a = [('a',1),('b',2),('c',3),('d',4)] a_1 = list(map(lambda x:x[0],a))
如上例子,map函數第一個參數是一個lambda表達式,輸入一個對象,返回該對象的第一個元素。第二個就是需要作用的對象,此處是一個列表。Python3中map返回一個map對象,我們需要人工轉為list,得到的結果就是[‘a’,’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表達式參數可以是多個。返回結果是[3,5,7,9]
例子:
a = [1,2,3,4,5,6,7] a_1 = filter(lambda x:x<4,a)
如上例子,定義lambda表達式,篩選a列表中小于4的元素,結果為[1,2,3]。filter函數直接返回一個列表,無需再進行轉換,第三個是初始值,我們沒給初始值,那么開始操作的兩個元素就是序列的前兩個。否則將使用我們給出的初始值和序列第一個元素操作,然后結果再與第三個元素操作,以此類推。上個例子結果是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表達式需要兩個參數,reduce函數共三個參數。
第一個是就是lambda表達式,第二個是要累計的序列,第三個是初始值,我們沒給初始值,那么開始操作的兩個元素就是序列的前兩個。否則將使用我們給出的初始值和序列第一個元素操作,然后結果再與第三個元素操作,以此類推。上個例子結果是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中lambda表達式是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。