日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

day17.Python中lambda表达式应用

發布時間:2024/4/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day17.Python中lambda表达式应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于簡單的函數,也存在一種簡便的表示方式,即:lambda表達式

#普通函數 1 def func(a): 2 return a+1 3 print 'test1_func0:',func(1000) 4 #lambda表達式 5 func0 = lambda a:a+1 6 print 'test2_func0:',func0(1000)

上面這種方法,都實現了將1000+1的結果打印出來這個功能。

lambda存在意義就是對簡單函數的簡潔表示。

上面是我們對calc這個匿名函數的分析,下面給出了一個關于匿名函數格式的說明

函數名 = lambda 參數 :返回值#參數可以有多個,用逗號隔開 #匿名函數不管邏輯多復雜,只能寫一行,且邏輯執行結束后的內容就是返回值 #返回值和正常的函數一樣可以是任意數據類型

我們可以看出,匿名函數并不是真的不能有名字。

匿名函數的調用和正常的調用也沒有什么分別。 就是 函數名(參數) 就可以了。


?

說到lambda,這里再贈送一些可以給lambda加buff小伙伴:

1.map函數,我們使用map函數將會對列表中的所有元素進行操作。map有兩個參數(函數,列表),它會在內部遍歷列表中的每一個元素,執行傳遞過來的函數參數。在輸出到新列表中。

1 li = [11, 22, 33] 2 new_list = map(lambda a: a + 100, li) 輸出:[111, 122, 133]

當然,map還可以完成多個數組的相加:

li = [11, 22, 33] sl = [1, 2, 3] new_list = map(lambda a, b: a + b, li, sl) print new_list 輸出:[12, 24, 36]

2.reduce函數,對于序列內所有元素進行累計操作:

lst = [11,22,33] func2 = reduce(lambda arg1,arg2:arg1+arg2,lst) print 'func2:',func2 輸出:func2: 66

3.filter函數,他可以根據條件對數據進行過濾:

li = [11, 22, 33] new_list = filter(lambda arg: arg > 22, li) print new_list 輸出:[33]

?


面試題練一練

現有兩個元組(('a'),('b')),(('c'),('d')),請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]

#答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) #答案二 print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2)))) #還可以這樣寫 print([{i:j} for i,j in zip(t1,t2)]) 答案

?

轉載于:https://www.cnblogs.com/maxiaotiaoshishui/p/7280090.html

總結

以上是生活随笔為你收集整理的day17.Python中lambda表达式应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。