摘要:例例如文檔中所說(shuō),函數(shù)將方法映射到中的每一個(gè)元素,即對(duì)中的每個(gè)元素調(diào)用方法,并返回結(jié)果的。需要注意的是函數(shù)可以多個(gè)可迭代參數(shù),前提是方法能夠接收這些參數(shù)。即在每個(gè)中,取出下標(biāo)相同的元素,執(zhí)行。最重要的是,如果不在前加上,函數(shù)根本就不會(huì)執(zhí)行
先來(lái)看一下官方文檔:
map(function, iterable, ...)Apply function to every item of iterable and return a list of the results. If additional iterable arguments are passed, function must take that many arguments and is applied to the items from all in parallel. If one iterable is shorter than another it is assumed to be extended withNoneitems. If function isNone, the identity function is assumed; if there are multiple arguments, map() returns a list consisting of tuples containing the corresponding items from all iterables (a kind of transpose operation). The iterable arguments may be a sequence or any iterable object; the result is always a list.
1.對(duì)可迭代函數(shù)"iterable"中的每一個(gè)元素應(yīng)用‘function’方法,將結(jié)果作為list返回。
例:
例1: >>> def add(x): ... return x+1 ... >>> aa = [11,22,33] >>> map(add,aa) [12, 23, 34]
如文檔中所說(shuō),map函數(shù)將add方法映射到aa中的每一個(gè)元素,即對(duì)aa中的每個(gè)元素調(diào)用add方法,并返回結(jié)果的list。需要注意的是map函數(shù)可以多個(gè)可迭代參數(shù),前提是function方法能夠接收這些參數(shù)。否則將報(bào)錯(cuò)。例子如下:
如果給出多個(gè)可迭代參數(shù),則對(duì)每個(gè)可迭代參數(shù)中的元素‘平行’的應(yīng)用‘function’。即在每個(gè)list中,取出下標(biāo)相同的元素,執(zhí)行abc()。
例2: >>> def abc(a, b, c): ... return a*10000 + b*100 + c ... >>> list1 = [11,22,33] >>> list2 = [44,55,66] >>> list3 = [77,88,99] >>> map(abc,list1,list2,list3) [114477, 225588, 336699] >>> a = map(ord,"abcd") >>> list(a) [97, 98, 99, 100] >>> a = map(ord,"abcd","efg") # 傳入兩個(gè)可迭代對(duì)象,所以傳入的函數(shù)必須能接收2個(gè)參數(shù),ord不能接收2個(gè)參數(shù),所以報(bào)錯(cuò) >>> list(a) Traceback (most recent call last): File "", line 1, in list(a) TypeError: ord() takes exactly one argument (2 given) >>> def f(a,b): return a + b
當(dāng)傳入多個(gè)可迭代對(duì)象時(shí),且它們?cè)亻L(zhǎng)度不一致時(shí),生成的迭代器只到最短長(zhǎng)度。
>>> a = map(f,"abcd","efg") # 選取最短長(zhǎng)度為3 >>> list(a) ["ae", "bf", "cg"]
2.如果"function"給出的是‘None’,則會(huì)自動(dòng)調(diào)用一個(gè)默認(rèn)函數(shù),請(qǐng)看例子:
例3: >>> list1 = [11,22,33] >>> map(None,list1) [11, 22, 33] >>> list1 = [11,22,33] >>> list2 = [44,55,66] >>> list3 = [77,88,99] >>> map(None,list1,list2,list3) [(11, 44, 77), (22, 55, 88), (33, 66, 99)]
3.最后一點(diǎn)需要注意的是,map()在python3和python2中的差異(特別是從py2轉(zhuǎn)到py3的使用者很可能遇到):
在python2中,map會(huì)直接返回結(jié)果,例如:
map(lambda x: x, [1,2,3])
可以直接返回
[1,2,3]
但是在python3中, 返回的就是一個(gè)map對(duì)象:
如果要得到結(jié)果,必須用list作用于這個(gè)map對(duì)象。
最重要的是,如果不在map前加上list,lambda函數(shù)根本就不會(huì)執(zhí)行
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44671.html
摘要:另外,這些中的每一個(gè)都是純函數(shù),有返回值。例如,如果要計(jì)算整數(shù)列表的累積乘,或者求和等等基礎(chǔ)語(yǔ)法參數(shù)是連續(xù)作用于每一個(gè)元素的方法,新的參數(shù)為上一次執(zhí)行的結(jié)果,為被過(guò)濾的可迭代序列返回值最終的返回結(jié)果在中,是一個(gè)內(nèi)置函數(shù)。 簡(jiǎn)潔的內(nèi)置函數(shù) 大家好,我又回來(lái)了,今天我想和大家分享的是Python非常重要的幾個(gè)內(nèi)置函數(shù):map,filter,reduce, zip。它們都是處理序列的便捷函數(shù)...
摘要:用匿名函數(shù)有個(gè)好處,因?yàn)楹瘮?shù)沒(méi)有名字,不必?fù)?dān)心函數(shù)名沖突。和不同的是,把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。字符串給出當(dāng)前平臺(tái)使用的行終止符。程序中間的退出,為正常退出。 列表生成式 函數(shù)的參數(shù)類型 lambda函數(shù) map, reduce, filter, sorted函數(shù) eval, exec, join, zip函數(shù) itertools中的...
小編寫(xiě)這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)介紹,介紹的內(nèi)容涉及到Python Map函數(shù)的一些使用方法,還會(huì)涉及到一些具體的保姆級(jí)的一些相關(guān)使用教程,具體的內(nèi)容,下面就給大家詳細(xì)解答下。 眾所周知,我們?cè)谑褂胮ython的時(shí)候,會(huì)大大的提高我們的一個(gè)工作效率,對(duì)我們工作效率的提高有一個(gè)本質(zhì)的提升。 那么,本文會(huì)給大家統(tǒng)一的做個(gè)解答,解答的內(nèi)容還是涉及到相關(guān)的Python Map函數(shù)...
摘要:序列不是特定的抽象數(shù)據(jù)類型,而是不同類型共有的一組行為。不像抽象數(shù)據(jù)類型,我們并沒(méi)有闡述如何構(gòu)造序列。這兩個(gè)選擇器和一個(gè)構(gòu)造器,以及一個(gè)常量共同實(shí)現(xiàn)了抽象數(shù)據(jù)類型的遞歸列表。 2.3 序列 來(lái)源:2.3 Sequences 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 序列是數(shù)據(jù)值的順序容器。不像偶對(duì)只有兩個(gè)元素,序列可以擁有任意(但是有限)個(gè)有序元素。 序列在計(jì)算機(jī)科學(xué)中...
摘要:在中運(yùn)行不同的實(shí)驗(yàn)似乎比試圖在中進(jìn)行這種探索性的操作更有效。理論上,我們可以在中做很多的探索。我們?nèi)绾卫^續(xù)第一步是獲取格式的原始數(shù)據(jù)。這些列將包含來(lái)自使用該代理鍵的一個(gè)請(qǐng)求的一行數(shù)據(jù)。這是重構(gòu)的另一部分。數(shù)據(jù)的最終顯示保持完全分離。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 這里有一些技巧來(lái)處理日志文件提取。假設(shè)我們正在查看一些Enterprise Splunk提取。...
閱讀 1886·2021-11-12 10:36
閱讀 2320·2021-09-01 10:29
閱讀 2354·2019-08-30 15:56
閱讀 1024·2019-08-30 12:56
閱讀 2355·2019-08-26 13:58
閱讀 2274·2019-08-23 18:38
閱讀 1494·2019-08-23 18:32
閱讀 2110·2019-08-23 16:53