這三個內置函數仍是很是有用的,在工做中用的還很多,順手,下面一一進行介紹python
一、filter函數
語法:filter(function,iterable)
學習
解釋:把迭代器經過function函數進行過濾出想要的數據code
用法:能夠設置一個迭代器,而後把相同屬性的元素過濾出來,以下所示it
list1 = [1,2,3,4,5,6,7,8,9,10] listTemp = filter(lambda x:x%2==0,list1)
上面的意思是過濾出偶數(即被2整除的數),其中使用了匿名函數lambda,很是簡便,固然咱們也能夠本身頂一個函數來實現io
另外在python2.*
版本中是直接返回list的,但在python3.*
中是返回一個迭代器function
二、mapclass
語法:map(function,*iterable)
匿名函數
解釋:把迭代器(或多個迭代器)經過function函數獲得結果lambda
用法:能夠設置一個或多個迭代器,而後把相同位置(若是爲多個迭代器)的元素經過function函數獲得最終結果,以下所示:
#Python學習交流羣:778463939 #一個迭代器 list1 = [1,2,3,4,5,6,7,8,9] listTemp = map(lambda x:x*x,list1) #多個迭代器 list2 = [11,12,13] list3 = [21,22,23,24,25] listTemp = map(lambda x,y,z:x+y+z,list1,list2,list3)
多個迭代器的時候,是對後面全部的迭代器進行處理(lambda函數的參數個數必須和後面迭代器的個數一致),這裏咱們又使用了匿名函數lambda
同filter同樣,在python2.*
版本中是直接返回list的,但在python3.*
中是返回一個迭代器
三、reduce
語法:reduce(function,iterable)
解釋:把迭代器經過function進行累積計算
用法:function必須包含倆個參數,第一個參數表示初始值,第二個參數表示迭代器的每一個元素,以下:
list1 = [1,2,3,4,5] listTemp = reduce(lambda x,y:x+y*y,list1) print(listTemp)
經過print能夠看出使用的是python3.*
,這裏要注意的是,reduce函數在3.*
版本里面已經移動到functools裏面
這裏咱們再次使用了lambda匿名函數,很是好用,函數式意思是把list1中的元素自乘以後再相加