python中的map、filter、reduce函数
三個函數比較類似,都是應用于序列的內置函數。常見的序列包括list、tuple、str。
1、map函數
map函數會根據提供的函數對指定序列做映射。
map函數的定義:
map(function,sequence[,sequence,...]) ->list
?通過定義可以看到,這個函數的第一個參數是一個函數,剩下的參數是一個或多個序列,返回值是一個集合。
function可以理解為是一個一對一或多對一的函數,map的作用是以參數序列中的每一個元素調用function函數,返回包含每次function函數返回值的list。
比如要對一個序列中的每個元素進行平方運算:
返回結果為:
在參數存在多個序列時,會依次以每個序列中相同位置的元素做參數調用function函數
比如要對兩個序列中的元素依次求和:
map返回的list中的第一個元素為1,加參數序列2中的第一個元素為2,即(1+2)
map返回的list中的第二個元素為3,加參數序列2中的第二個元素為4,即(3+4)
以此類推,最后的返回結果為:
要注意function函數的參數數量,要和map中提供的集合數量相匹配。
如果集合長度不相等,會以最小長度對所有集合進行截取。
?
2、filter函數
filter函數會對指定序列執行過濾操作。
filter函數的定義:
filter(function or None,sequence) ->list,tuple or string
function是一個謂詞函數,接受一個參數,返回布爾值True或False。
filter函數會對序列參數sequence中的每個元素調用function函數,最后返回的結果包含調用結果為True的元素。
返回值的類型和參數sequence類型相同。
篩選list列表中以ex結尾的元素:
打印結果:
['alex']
?
3、reduce函數
reduce函數會對參數序列中元素進行累積。
定義:
reduce(function,sequence[,initial]) ->value
function參數是一個有兩個參數的函數,reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function。
第一次調用function時,如果提供initial參數,會以sequence中的第一個元素和initial參數,會以sequence中的第一個元素和initial作為參數調用function,否則會以序列sequence中的前兩個元素做參數調用function。
求數列中元素的和:
打印結果:
15
?
轉載于:https://www.cnblogs.com/LYliangying/p/6227019.html
總結
以上是生活随笔為你收集整理的python中的map、filter、reduce函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JQuery------实现鼠标摁下抬起
- 下一篇: 使用nginx简单实现负载均衡