迴圈map 更少迴圈?看看這3個Python函式

2021-10-25 13:18:17 字數 2247 閱讀 3457

全文共1146字,預計學習時長5分鐘

圖源:wired

誕生於2023年的python,這幾年突然火了。簡歷上有了python,就業競爭力瞬間提公升,甚至一些小學教材上都出現了python內容。這種語言的熱度超過了以往任何時候。

作為21世紀最流行的語言之一,python當然有很多有趣的函式值得深入探索和研究。筆者今天就將從理論和實際兩個方面,介紹其中三個函式。

這三個函式可不簡單,它們可以幫助程式設計師們避免編寫迴圈,有時迴圈的執行成本是很高的。此外,這些函式還有助於提高執行速度。

拿出筆小本本開始學習吧!

map() 函式的作用是將另一函式作為引數,與某種陣列放在一起,旨在將函式(作為引數而匯入的函式)應用於陣列中的每乙個項。其好處在於:

· 無需編寫迴圈

· 2.比編寫迴圈用時短

圖源:unsplash

來看看實際效果。筆者採用名為num_func()的函式,該函式以乙個數字作為引數。將該數字平方並除以二,然後返回。

注:函式的操作是任意選擇的,使用者可以在函式中執行任何想進行的操作。

現在宣告一串要應用num_func()的數字陣列。注:map() 本身將會返回乙個map物件,因此需要將其轉為為乙個列:

大功告成!雖然不是多難的技術,但是盡可能避免迴圈總是好事。

reduce()則不同,必須從functools模組將其匯入。該操作主要是將乙個給定的函式應用於專案組,然後返回乙個值。

最後一部分很關鍵——reduce()函式不會返回乙個專案組,而是返回乙個值。觀察以下圖表,以對此概念具體化。

在圖表不完全清楚的情況下,呈現出以下邏輯:

1.5加10等於15

2.15加12等於27

3.27加18等於45

4.45加25等於70

70是返回的值。從實現**開始,先從functools模組匯入reduce函式,再宣告乙個返回兩個數字之和的函式:

現在,可以在**中重新檢視圖表,並驗證所有內容是否正常工作:

當然還有許多辦法可以對列表中的專案進行彙總,這裡只展示了函式工作原理中最簡單的一些例子。

圖源:business.blogthinkbig.com

這個函式也非常棒,它可以節省時間——包括編寫和執行。顧名思義,這個函式的作用是只將滿足特定條件的項保留在陣列中。

與map()一樣,預先宣告函式,然後將其和迭代列表一起傳遞到 filter()。

來乙個示例:現已提前宣告了乙個名為 more_than_15()的函式,即如果引數給定的項大於15,則返回true。

接下來,宣告乙個數字陣列,並將其作為filter()函式中的第二個引數匯入:

正如所料,只有三個值滿足給定條件。是不是看起來比迴圈好多了?

圖源:unsplash

用好這三個函式,你的**看起來會更好,迴圈數也會更少。熟能生巧,要多練習呀~

我們一起分享ai學習與發展的乾貨

編譯組:王俊博、柳玥

for迴圈的3個引數

第乙個引數 表示迴圈的初始值,或初始條件,這裡是i 0 第二個引數 是迴圈的條件,這裡是當i小於list的長度時 第三個引數 每次迴圈要改變的操作,這裡是i for int i 0 i 例如遍歷檔案,按行讀取 第乙個引數 表示迴圈的初始值,這裡是讀取一行字元流 第二個引數 是迴圈的條件,當流不為空,...

for迴圈的3個引數

第乙個引數 表示迴圈的初始值,或初始條件,這裡是i 0 第二個引數 是迴圈的條件,這裡是當i小於list的長度時 第三個引數 每次迴圈要改變的操作,這裡是i for int i 0 i 例如遍歷檔案,按行讀取 第乙個引數 表示迴圈的初始值,這裡是讀取一行字元流 第二個引數 是迴圈的條件,當流不為空,...

python3 迴圈遍歷一次map之後,map為空

今天在跟敲書本 的時候,發現map型別的變數經過一次for迴圈遍歷之後,裡面的元素都沒有了,找了一些資料,特此記錄,以作備忘。我們常常會寫類似於這樣的 dataset 1,3,4 2,3,5 1,2,3,5 2,5 num 0 d map set,dataset for tid in d num 1...