在編程語言中,高階函數(shù)指的是接受函數(shù)作為輸入或輸出的函數(shù)。
map概述
python中的map()函數(shù)是一個內(nèi)置的高階函數(shù),一般用法是map(function, iterable)。需要傳入一個函數(shù),這個函數(shù)可以是內(nèi)置的,也可以是自己定義,也可以是匿名函數(shù)即lambda。第二個參數(shù)是一個可迭代對象,如列表、字典字符串等。map函數(shù)返回的是一個map對象,也是一個可迭代對象,可以利用for循環(huán)迭代查看元素,也可以嘗試list()將其轉(zhuǎn)為列表對象操作,map形式:
map(function, iterable, ...)
map用法
1.計(jì)算列表中所有數(shù)的平方
示例結(jié)果:
[1, 4, 9, 16][1, 4, 9, 16]
2. 處理序列對象中的字符串
示例結(jié)果:
['I like Python', 'Python make me happy', 'without python, without living.']['I like Python', 'Python make me happy', 'without python, without living.']
多參數(shù)傳遞
map也接受多個可迭代對象作為參數(shù)傳遞,若可迭代對象元素?cái)?shù)量不一致則傳遞至元素?cái)?shù)量最小的為止
示例結(jié)果:
66666
reduce概述
reduce用于對可迭代對象中的元素進(jìn)行累積操作,reduce接受兩個參數(shù),一個是函數(shù)f(x, y)參數(shù)(該函數(shù)必須有兩個參數(shù)),另一個是可迭代對象。reduce行為是先將可迭代對象的前兩個元素傳入f(x, y)中,然后不斷將f(x, y)的返回值再次和下一個迭代對象傳入f(x, y),直到迭代完迭代對象中的元素,并返回最終的f(x, y)的返回值。reduce形式:
reduce(function, iterable[, initializer])
reduce用法
在 Python3 中,reduce() 函數(shù)已經(jīng)被從全局名字空間里移除了,它現(xiàn)在被放置在 functools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調(diào)用 reduce() 函數(shù)。
示例結(jié)果:
15
上例即我們通過reduce高階函數(shù)完成了對列表中五個數(shù)的累加過程。
filter概述
filter用于過濾篩選可迭代對象中的元素,如果符合條件則返回對應(yīng)的元素序列(類型為filter),filter接受兩個參數(shù),一個是函數(shù)用于篩選元素,返回值為True或Flase,另一個是可迭代對象。
filter用法
示例結(jié)果:
[2, 4, 6, 8]