python的內(nèi)建函數(shù)map filter reduce zip

lambda?

大概意思就是

def add(x,y):return x+y

改寫成 lambda x,y :x+y簡單的函數(shù)的時(shí)候? 省略函數(shù)名和return





map

class map(object)

? map(func, *iterables) --> map object

map()函數(shù)接收兩個(gè)參數(shù),一個(gè)是函數(shù)女嘲,一個(gè)是Iterable粪糙,map將傳入的函數(shù)依次作用到序列的每個(gè)元素,并把結(jié)果作為新的Iterator返回。

Iterator是惰性序列量蕊,因此通過list()函數(shù)讓它把整個(gè)序列都計(jì)算出來并返回一個(gè)list。

eg

>>> r = map(lambda x:x*x, [1,2,3,4,5,6,7,8,9])

>>> list(r)

[1,4,9,16,25,36,49,64,81]



reduce

reduce(...)

? ? reduce(function, sequence[, initial]) -> value

?這里的參數(shù)? 是 一個(gè)函數(shù) 一個(gè)序列 一個(gè)初始值, 中括號(hào)的意思是 初始值可以省略正塌。

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)


from? functools import reduce

DIGITS = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}

def? char2num(s):

????????return DIGITS[s]

def? str2int(s):

????????return? reduce(lambda x, y: x *10+ y, map(char2num, s))



filter

class filter(object)

?????????filter(function or None, iterable) --> filter object

和map()類似,filter()也接收一個(gè)函數(shù)和一個(gè)序列咒程。和map()不同的是鸠天,filter()把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素帐姻。

注意到filter()函數(shù)返回的是一個(gè)Iterator稠集,也就是一個(gè)惰性序列,所以要強(qiáng)迫filter()完成計(jì)算結(jié)果饥瓷,需要用list()函數(shù)獲得所有結(jié)果并返回list剥纷。


def not_empty(s):

????????return s and s.strip()

list (filter (not_empty, ['A','','B', None, 'C', ' ']))

結(jié)果當(dāng)然就是 ['A', 'B', 'C']

感覺這個(gè) not_empty 函數(shù)還是挺有趣的,傻傻的我- -呢铆。


zip

class zip(object)

zip(iter1 [,iter2 [...]]) --> zip object

eg1:基本用法

for i in??zip((1,2,3),(4,5,6)):

? ? print(i)

結(jié)果

(1,4)

(2,5)

(3,6)

eg2:改變字典 key和value的對(duì)調(diào)

dicta={'a':'aa','b':'bb'}? ? ?#定義一個(gè)字典a

dictb=zip(dicta.values(),dicta.keys())? ?#用zip方法進(jìn)行對(duì)調(diào)

print(dictb)

<zip object at 0xhgkjahgka>? ? ?#輸出得到一個(gè)zip類型? 我瞎j8寫的

print(dict(dictb))????????#類型轉(zhuǎn)換

{'aa':'a','bb':'b'}? ????#對(duì)調(diào)成功?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晦鞋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棺克,更是在濱河造成了極大的恐慌悠垛,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娜谊,死亡現(xiàn)場離奇詭異确买,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纱皆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門湾趾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抹剩,你說我怎么就攤上這事撑帖。” “怎么了澳眷?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵胡嘿,是天一觀的道長。 經(jīng)常有香客問我钳踊,道長衷敌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任拓瞪,我火速辦了婚禮缴罗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘祭埂。我一直安慰自己面氓,他們只是感情好兵钮,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舌界,像睡著了一般掘譬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呻拌,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天葱轩,我揣著相機(jī)與錄音,去河邊找鬼藐握。 笑死靴拱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猾普。 我是一名探鬼主播袜炕,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼初家!你這毒婦竟也來了妇蛀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤笤成,失蹤者是張志新(化名)和其女友劉穎评架,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炕泳,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纵诞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了培遵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浙芙。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖籽腕,靈堂內(nèi)的尸體忽然破棺而出嗡呼,到底是詐尸還是另有隱情,我是刑警寧澤皇耗,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布南窗,位于F島的核電站,受9級(jí)特大地震影響郎楼,放射性物質(zhì)發(fā)生泄漏万伤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一呜袁、第九天 我趴在偏房一處隱蔽的房頂上張望敌买。 院中可真熱鬧,春花似錦阶界、人聲如沸虹钮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芙粱。三九已至珍策,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宅倒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國打工屯耸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拐迁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓疗绣,卻偏偏與公主長得像线召,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子多矮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容