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

歡迎訪問 生活随笔!

生活随笔

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

python

Python之lambda表达式和内置函数

發布時間:2025/3/21 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之lambda表达式和内置函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

lambda表達式其實就是簡化的函數表達式。

它只用于處理簡單邏輯,

它會自動return數據


通常定義一個函數,按照以下形式:

1 2 3 4 5 def??func(arg): ??????return?arg?+1 result?=?func(100) print?result 101


以上函數用lambda表達式可以這么寫:

1 2 3 func2?=?lambda?a:?a+1 result?=?func2(100) print?result


在lambda表達式中,func2 相當于函數表達式中的func,即函數的名稱

a相當于函數表達式中的arg,即函數的參數。

冒號后面的a+1,相當于函數表達式中的返回結果,只不過在lambda表達式中不再用return來聲明了。


之前的文檔中介紹過,函數可以添加多個參數,,lambda表達式也可以


例如:

1 2 3 4 func3?=?lambda?a,b:?a?+?b result?=?func3(100,200) print?result 300



Python內置函數


map方法:

map方法會遍歷整個序列(包括列表和元組),并對每一個元素進行相應的操作。

例如:有一個列表,將列表中的每一個元素加10。可以用map函數操作

li?=?[,,] func1(arg):arg?+??=?(func1,li)

map內部原理其實是,

?=?[] I?li:.append(func1(I))


map函數可以接受多個序列作為參數:

l1?=?[,,] l2?=?[,,] l3?=?[,,] func2(a1,a2,a3):a1?+?a2?+?a3(func2,l1,l2,l3)

[17, 30, 43]

注意,如果接受多個序列作為參數,則每一個序列的元素個數必須相等。

上面的例子用lambda表達式,這樣寫

1 2 3 l1?=?[,,] l2?=?[,,] l3?=?[,,]

print map(lambda a1,a2,a3:a1+a2+a3,l1,l2,l3)



filter函數:

filter會遍歷序列中的每一個元素,按條件對元素進行過濾,其實內部原理就是按照條件進行計算,計算結果為True的元素不過濾,計算結果為False,則過過濾

例如:

例1:

1 2 3 >>>?li?=?[11,22,'',False,0] >>>?print?filter(None,li) [11,?22]

上面的例子中,None表示過濾掉布爾值為假的元素。0,False,空字符串都是布爾值都是假

?=?[,,,] func(a):a>(func,)

[44,55]

這里就是遍歷l1這個列表,每一個元素通過函數func計算,大于33的則返回True,否則返回False。返回False則被過濾掉了。


reduce函數:

?接受一個序列,遍歷序列中的元素,然后進行一系列的計算,得到一個結果。

reduce是將給出的元素按照方法進行計算,至少要接受兩個元素。

例如計算1+2+3+4+5的和

reduce的原理是:計算1+2得到a 然后計算a+3,得到b,再計算b+4.依次類推

li?=[,,,,]=?(arg1,arg2:arg1+arg2,li)









本文轉自 曾哥最愛 51CTO博客,原文鏈接:http://blog.51cto.com/zengestudy/1826950,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Python之lambda表达式和内置函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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