Python單行函數lambda(小米)加reduce、map、filter(步槍)應用

來源:互聯網
上載者:User

標籤:resource   應用   使用   重複   簡練   print   序列   ima   learning   

什麼是lambda?

lambda定義匿名函數,並不會帶來程式運行效率的提高,只會使代碼更簡潔。為了減少單行函數的定義而存在的。
lambda的使用大量簡化了代碼,使代碼簡練清晰。但是值得注意的是,這會在一定程度上降低代碼的可讀性。如果不是非常熟悉Python的人也許會對此很難理解。
如果可以使用for...in...if來完成的,堅決不用lambda。
如果使用lambda,lambda內不要包含迴圈,如果有,寧願定義函數來完成,使代碼獲得可重用性和更好的可讀性。如果你對你就喜歡用lambda來做,那也無可厚非,但是有內建函數減弱了代碼的可讀性!

 好了介紹完成了lambda,那就讓我們來實際用一下,執行個體如下:

 

 

 

下面我們再來看看小米加上步槍的結合使用。
1、reduce + lambda
What is reduce?

Python中的reduce內建函數是一個二元操作函數,他用來將一個資料集合(列表,元組等)中的所有資料進行如下操作:傳給reduce中的函數func() (必須是一個二元操作函數)先對集合中的第1,2個資料進行操作,得到的結果再與第三個資料用func()函數運算,最後得到一個結果。

關於python reduce的詳細解析,後續詳細介紹,下面我們介紹一下reduce + lambda的應用案例:

 

 

Python3 統計某字串重複次數:

from functools import reducesentences = [‘The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. ‘] word_count =reduce(lambda a,x:a+x.count("learning"),sentences,0)print(word_count)

>2

2、map + lambda
What is map?

map函數應用於每一個可迭代的項,返回的是一個結果list。如果有其他的可迭代參數傳進來,map函數則會把每一個參數都以相應的處理函數進行迭代處理。map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,並把結果作為新的list返回。

格式:map(func, seq1[, seq2...] )

Python函數式編程中的map()函數是將func作用於seq中的每一個元素,並用一個列表給出傳回值。如果func為None,作用同zip()。

詳細應用code如下:

 

 

 

 

這裡需要注意的是:升級到python3的時候,map函數有一個變化那就是,如果不在map前加上list,lambda函數根本就不會執行。


在python2中,map會直接返回結果:

 

 

 

 

 

而再python3下面,返回的就是一個map對象:

<map object at 0x7f381112ad50>

如果要得到結果,必須用list作用於這個map對象。
 
3、filter + map
What is filter?

filter()函數可以對序列做過濾處理,就是說可以使用一個自定的函數過濾一個序列,把序列的每一項傳到自訂的過濾函數裡處理,並返回結果做過濾。最終一次性返回過濾後的結果。和map()類似,filter()也接收一個函數和一個序列。和map()不同的時,filter()把傳入的函數依次作用於每個元素,然後根據傳回值是True還是False決定保留還是丟棄該元素。


簡單應用如下:

 

 

這裡簡單介紹一下python內建函數小米加步槍,更詳細的介紹再會,打完收工!

Python單行函數lambda(小米)加reduce、map、filter(步槍)應用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.