這三個內置函式還是非常有用的,在作業中用的還不少,順手,下面一一進行介紹
1、filter
語法:filter(function,iterable)
解釋:把迭代器通過function函式進行過濾出想要的資料
用法:可以設定一個迭代器,然后把相同屬性的元素過濾出來,如下所示
list1 = [1,2,3,4,5,6,7,8,9,10]
listTemp = filter(lambda x:x%2==0,list1)
上面的意思是過濾出偶數(即被2整除的數),其中使用了匿名函式lambda,非常簡便,當然我們也可以自己頂一個函式來實作
另外在python2.*版本中是直接回傳list的,但在python3.*中是回傳一個迭代器
2、map
語法:map(function,*iterable)
解釋:把迭代器(或多個迭代器)通過function函式得到結果
用法:可以設定一個或多個迭代器,然后把相同位置(如果為多個迭代器)的元素通過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.*中是回傳一個迭代器
3、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中的元素自乘之后再相加
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228426.html
標籤:其他
上一篇:9道python基礎練習題
