Python map/reduce
2017-07-31 18:20:59
一、map函數(shù)
map():會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的iterator,即迭代器,使用list函數(shù)可以將之轉(zhuǎn)成列表。
- map(function, iterable, ...)
- function -- 函數(shù)
- iterable -- 一個(gè)或多個(gè)序列
map()作為高階函數(shù),事實(shí)上它把運(yùn)算規(guī)則抽象了,因此,我們不但可以計(jì)算簡單的 f(x)=x2,還可以計(jì)算任意復(fù)雜的函數(shù),比如,把這個(gè)list所有數(shù)字轉(zhuǎn)為字符串等。
?
二、reduce函數(shù)
reduce():函數(shù)會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。函數(shù)將一個(gè)數(shù)據(jù)集合(鏈表,元組等)中的所有數(shù)據(jù)進(jìn)行下列操作,用傳給reduce中的函數(shù) function(有兩個(gè)參數(shù))先對(duì)集合中的第 1、2 個(gè)元素進(jìn)行操作,得到的結(jié)果再與第三個(gè)數(shù)據(jù)用 function 函數(shù)運(yùn)算,最后得到一個(gè)結(jié)果。
reduce把一個(gè)函數(shù)作用在一個(gè)序列[x1, x2, x3, ...]上,這個(gè)函數(shù)必須接收兩個(gè)參數(shù),reduce把結(jié)果繼續(xù)和序列的下一個(gè)元素做累積計(jì)算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)?
- reduce(function, iterable[, initializer]):
- function -- 函數(shù),有兩個(gè)參數(shù)
- iterable -- 可迭代對(duì)象
- initializer -- 可選,初始參數(shù)
# 45
?可以使用reduce來進(jìn)行str轉(zhuǎn)int
from functools import reducedef str2int(s):def fn(x, y):return x * 10 + ydef char2num(s):return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]return reduce(fn, map(char2num, s))?
轉(zhuǎn)載于:https://www.cnblogs.com/TIMHY/p/7264736.html
總結(jié)
以上是生活随笔為你收集整理的Python map/reduce的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四合一小说漫画听书视频网站源码 带采集
- 下一篇: sikuli python java_自