python之有用的3個內建函數(filter/map/reduce)

來源:互聯網
上載者:User

標籤:python2   個數   初始   使用   listt   意思   lambda函數   匿名   tools   

 

這三個內建函數還是非常有用的,在工作中用的還不少,順手,下面一一進行介紹

 

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函數得到最終結果,如下所示:

#一個迭代器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中的元素自乘之後再相加

 

python之有用的3個內建函數(filter/map/reduce)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.