python進階(小白也能看懂)——Map、Filter、Reduce

python進階(小白也能看懂)——Map、Filter、Reduce

第三篇

Map、Filter、Reduce是python中常用的函數,使用這些函數能夠給我們帶來很多便捷。

Map

map(function_to_apply, list_of_inputs)

第一個參數是工具函數(工具函數是我自己起的名,因爲這個函數就像一個工具一樣,用來處理我們的數據),第二個參數是列表,map的作用就是將工具函數逐個地應用在列表中的元素上,並返回工具函數處理後的列表。
看個例子就清楚了:

# 先定義工具函
def multiply_by_to(item):
	return item*2
	
# 因爲map返回的是迭代器,所以需要轉換爲列表類型	
print(list(map(multiply_by_to, [1,2,3]))

輸出結果

[2,4,6]

如果不知道什麼是迭代器,參考我的上一篇文章python進階(小白也能看懂)——生成器與迭代器

Reduce

reduce的用法與map類似,都需要傳入一個工具函數和一個列表,但是reduce的作用卻與map相反。reduce在迭代序列的過程中,先將序列的前兩個元素給工具函數處理,然後將處理的結果和序列的第三個元素給工具函數處理,依此類推,直至序列最後一個元素。
我們可以使用reduce函數計算5的階乘。

from functools import reduce
def multiply_x_y(x,y):
	return x*y
print(reduce(multiply_x_y,[1,2,3,4,5]))

輸出結果

120

Filter

filter的用法與map和reduce相同,但filter的作用是篩選元素,返回新的列表。見例子:

篩選出大於0的元素

def greater_than_zero(item):
	return item>0
print(list(filter(greater_than_zero, range(-5,5))))

輸出結果

[1,2,3,4]

參考

一文搞懂python的map、reduce函數

發佈了84 篇原創文章 · 獲贊 113 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章