wirte less ,do more!
作為21世紀最流行的語言之一,Python當然有很多有趣的功能值得深入探索和研究,今天通過理論和實際例子來討論,

我想介紹這些功能的主要原因是它們可以幫助您避免撰寫回圈,在某些情況下,回圈運行可能會很昂貴,除此之外,這些功能將有助于提高速度,
以下是本文將涵蓋的功能:
- map()
- filter()
- reduce()
即使你之前已經掌握了這些功能,用更多的理論和例子來強化你的知識也沒有害處,
所以不用多說,讓我們開始吧!
map()
map()函式接受另一個函式作為形參,以及某種陣列,其思想是將一個函式(作為引數傳入的函式)應用到陣列中的每一項,
這很有用,有兩個原因:
- 你不必寫回圈
- 它比回圈快
讓我們看看它的實際應用,我將宣告一個名為num_func()的函式,它接受一個數字作為引數,這個數的平方除以2,然后回傳,注意,操作是任意選擇的,你可以在函式內部做任何你想做的事情:

現在讓我們宣告一個數字陣列,我們想對其應用num_func(),注意map()本身會回傳一個map物件,所以你需要將它轉換為一個串列:

看起來這個程序很成功,這里沒有什么開創性的東西,但是盡可能避免回圈是一件好事,
filter()
下面是另一個不錯的函式,它可以節省您的時間——無論是撰寫還是執行,顧名思義,這個想法是將只滿足特定條件的項保存在陣列中,
就像map()一樣,我們可以事先宣告函式,然后將它與可迭代物件串列一起傳遞給filter(),
讓我們看看它的實際應用,我已經宣告了一個名為more_than_15()的函式,顧名思義,如果作為形參的項大于15,該函式將回傳True:

接下來,我們宣告一個數字陣列,并將它們作為第二個引數傳遞到filter()函式中:

正如你所料,只有三個值滿足給定的條件,再一次,這里沒有什么開創性的東西,但看起來比回圈好多了,
reduce()
現在reduce()與前兩個稍有不同,首先,我們必須從functools模塊中匯入它,其主要思想是將給定函式應用于項陣列,并回傳單個值作為結果,
最后一部分至關重要——reduce()不會回傳項的陣列,它總是回傳單個值,讓我們看一個圖表來具體說明這個概念,

- 5加10,結果是15
- 15加12,結果是27
- 27加18,結果是45
- 45加25,結果是70
70是回傳的值,首先從代碼實作開始,讓我們從functools模塊匯入reduce函式,并宣告一個函式回傳兩個數字的和:

現在,我們可以重新訪問代碼,并驗證一切正常運行:

我希望你能在日常生活中利用這三個功能,速度的提高可能不是很大——這取決于您所處理的資料量——但是代碼通常會因為更少的回圈而看起來更好!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/287186.html
標籤:其他
上一篇:阿里P8熬了一個月肝出這份阿里內部(泰山版),在Github標星31K+
下一篇:哈希表底層探索
