最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python map函數(shù)及Python map()函數(shù)的用法

 更新時(shí)間:2017年11月16日 08:48:08   投稿:mrr  
map() 會根據(jù)提供的函數(shù)對指定序列做映射。下面通過本文給大家介紹Python map函數(shù)及Python map()函數(shù)的用法,需要的朋友參考下吧

python map函數(shù)

map()函數(shù)
map()是 Python 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的 list 并返回。
例如,對于list [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果希望把list的每個(gè)元素都作平方,就可以用map()函數(shù):
因此,我們只需要傳入函數(shù)f(x)=x*x,就可以利用map()函數(shù)完成這個(gè)計(jì)算:
def f(x):
 return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
輸出結(jié)果:
[1, 4, 9, 10, 25, 36, 49, 64, 81]
注意:map()函數(shù)不改變原有的 list,而是返回一個(gè)新的 list。
利用map()函數(shù),可以把一個(gè) list 轉(zhuǎn)換為另一個(gè) list,只需要傳入轉(zhuǎn)換函數(shù)。
由于list包含的元素可以是任何類型,因此,map() 不僅僅可以處理只包含數(shù)值的 list,事實(shí)上它可以處理包含任意類型的 list,只要傳入的函數(shù)f可以處理這種數(shù)據(jù)類型。
任務(wù)
假設(shè)用戶輸入的英文名字不規(guī)范,沒有按照首字母大寫,后續(xù)字母小寫的規(guī)則,請利用map()函數(shù),把一個(gè)list(包含若干不規(guī)范的英文名字)變成一個(gè)包含規(guī)范英文名字的list:
輸入:['adam', 'LISA', 'barT']
輸出:['Adam', 'Lisa', 'Bart']
def format_name(s):
 s1=s[0:1].upper()+s[1:].lower();
 return s1;
print map(format_name, ['adam', 'LISA', 'barT'])

map()函數(shù)是python內(nèi)置的高階函數(shù),對傳入的list的每一個(gè)元素進(jìn)行映射,返回一個(gè)新的映射之后的list

Python map()函數(shù)的用法

Python函數(shù)式編程之map()

Python中map()、filter()、reduce()這三個(gè)都是應(yīng)用于序列的內(nèi)置函數(shù)。

格式:

map(func, seq1[, seq2,…])

第一個(gè)參數(shù)接受一個(gè)函數(shù)名,后面的參數(shù)接受一個(gè)或多個(gè)可迭代的序列,返回的是一個(gè)集合。

Python函數(shù)編程中的map()函數(shù)是將func作用于seq中的每一個(gè)元素,并將所有的調(diào)用的結(jié)果作為一個(gè)list返回。如果func為None,作用同zip()。

1、當(dāng)seq只有一個(gè)時(shí),將函數(shù)func作用于這個(gè)seq的每個(gè)元素上,并得到一個(gè)新的seq。

讓我們來看一下只有一個(gè)seq的時(shí)候,map()函數(shù)是如何工作的。

work 

從上圖可以看出,函數(shù)func函數(shù)會作用于seq中的每個(gè)元素,得到func(seq[n])組成的列表。下面舉得例子來幫助我們更好的理解這個(gè)工作過程。

#使用lambda
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]

3

#使用列表解析
>>> print [x % 2 for x in range(7)]
[0, 1, 0, 1, 0, 1, 0]

4 

一個(gè)seq時(shí),可以使用filter()函數(shù)代替,那什么情況不能代替呢?

2、當(dāng)seq多于一個(gè)時(shí),map可以并行(注意是并行)地對每個(gè)seq執(zhí)行如下圖所示的過程:

2 

從圖可以看出,每個(gè)seq的同一位置的元素同時(shí)傳入一個(gè)多元的func函數(shù)之后,得到一個(gè)返回值,并將這個(gè)返回值存放在一個(gè)列表中。下面我們看一個(gè)有多個(gè)seq的例子:

>>> print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
[8, 16, 6]

5 

如果上面我們不使用map函數(shù),就只能使用for循環(huán),依次對每個(gè)位置的元素調(diào)用該函數(shù)去執(zhí)行。還可以使返回值是一個(gè)元組。如:

>>> print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]

7 

當(dāng)func函數(shù)時(shí)None時(shí),這就同zip()函數(shù)了,并且zip()開始取代這個(gè)了,目的是將多個(gè)列表相同位置的元素歸并到一個(gè)元組。如:

>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]

需要注意的是:

map無法處理seq長度不一致、對應(yīng)位置操作數(shù)類型不一致的情況,這兩種情況都會報(bào)類型錯(cuò)誤。如下圖:

8

3、使用map()函數(shù)可以實(shí)現(xiàn)將其他類型的數(shù)轉(zhuǎn)換成list,但是這種轉(zhuǎn)換也是有類型限制的,具體什么類型限制,在以后的學(xué)習(xí)中慢慢摸索吧。這里給出幾個(gè)能轉(zhuǎn)換的例子:

***將元組轉(zhuǎn)換成list***
>>> map(int, (1,2,3))
[1, 2, 3]
***將字符串轉(zhuǎn)換成list***
>>> map(int, '1234')
[1, 2, 3, 4]
***提取字典的key,并將結(jié)果存放在一個(gè)list中***
>>> map(int, {1:2,2:3,3:4})
[1, 2, 3]
***字符串轉(zhuǎn)換成元組,并將結(jié)果以列表的形式返回***
>>> map(tuple, 'agdf')
[('a',), ('g',), ('d',), ('f',)]
#將小寫轉(zhuǎn)成大寫
def u_to_l (s):
 return s.upper()
print map(u_to_l,'asdfd')

總結(jié)

以上所述是小編給大家介紹的詳解Python map函數(shù)及Python map()函數(shù)的用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python基礎(chǔ)之pip如何更換鏡像源

    Python基礎(chǔ)之pip如何更換鏡像源

    pip的源是指pip安裝包所依賴的索引地址,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)之pip如何更換鏡像源的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Python的函數(shù)使用介紹

    Python的函數(shù)使用介紹

    這篇文章主要介紹了Python的函數(shù)使用,在兩種python循環(huán)語句的使用中,不僅僅是循環(huán)條件達(dá)到才能跳出循環(huán)體。所以,在對python函數(shù)進(jìn)行闡述之前,先對跳出循環(huán)的簡單語句塊進(jìn)行介紹,需要的朋友可以參考一下
    2021-12-12
  • Python高并發(fā)和多線程有什么關(guān)系

    Python高并發(fā)和多線程有什么關(guān)系

    這篇文章主要介紹了Python高并發(fā)和多線程有什么關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python Dask庫處理大規(guī)模數(shù)據(jù)集的強(qiáng)大功能實(shí)戰(zhàn)

    Python Dask庫處理大規(guī)模數(shù)據(jù)集的強(qiáng)大功能實(shí)戰(zhàn)

    Dask是一個(gè)靈活、開源的Python庫,專為處理大規(guī)模數(shù)據(jù)集而設(shè)計(jì),與傳統(tǒng)的單機(jī)計(jì)算相比,Dask能夠在分布式系統(tǒng)上運(yùn)行,有效利用集群的計(jì)算資源,本文將深入介紹Dask的核心概念、功能和實(shí)際應(yīng)用,通過豐富的示例代碼展示其在大數(shù)據(jù)處理領(lǐng)域的強(qiáng)大能力
    2023-12-12
  • python 實(shí)現(xiàn)將txt文件多行合并為一行并將中間的空格去掉方法

    python 實(shí)現(xiàn)將txt文件多行合并為一行并將中間的空格去掉方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)將txt文件多行合并為一行并將中間的空格去掉方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python?ArcPy實(shí)現(xiàn)批量計(jì)算多時(shí)相遙感影像的各項(xiàng)元平均值

    Python?ArcPy實(shí)現(xiàn)批量計(jì)算多時(shí)相遙感影像的各項(xiàng)元平均值

    這篇文章主要為大家詳細(xì)介紹了如何基于Python中ArcPy模塊,實(shí)現(xiàn)對大量長時(shí)間序列柵格遙感影像文件的每一個(gè)像元進(jìn)行多時(shí)序平均值的求取,感興趣的可以了解一下
    2023-04-04
  • Python特效之文字成像方法詳解

    Python特效之文字成像方法詳解

    文字成像,即將原圖片經(jīng)過 python 處理后,生成完全由純文字組成的圖像。本文將具體為大家介紹如何通過Python實(shí)現(xiàn)這一效果,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • django的ORM操作 增加和查詢

    django的ORM操作 增加和查詢

    這篇文章主要介紹了django的ORM操作 增加和查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)全盤掃描搜索功能的方法

    python實(shí)現(xiàn)全盤掃描搜索功能的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)全盤掃描搜索功能的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python算法應(yīng)用實(shí)戰(zhàn)之隊(duì)列詳解

    Python算法應(yīng)用實(shí)戰(zhàn)之隊(duì)列詳解

    隊(duì)列是一種先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu)。隊(duì)列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進(jìn)程、打印任務(wù)池等,一些仿真系統(tǒng)用隊(duì)列來模擬銀行或雜貨店里排隊(duì)的顧客。下面就介紹了Python中隊(duì)列的應(yīng)用實(shí)戰(zhàn),需要的可以參考。
    2017-02-02

最新評論

平遥县| 涟水县| 平山县| 台北县| 宝坻区| 延川县| 广灵县| 梁平县| 惠州市| 怀化市| 扶沟县| 遵化市| 平邑县| 濮阳市| 樟树市| 远安县| 若羌县| 莱州市| 务川| 江安县| 富裕县| 通榆县| 麦盖提县| 汽车| 天峨县| 商南县| 开鲁县| 阳高县| 泰顺县| 驻马店市| 龙门县| 普兰店市| 岫岩| 岳普湖县| 保定市| 新民市| 嘉义县| 桓仁| 乃东县| 公安县| 连山|