pythonmap函數(shù)(23)-創(chuàng)新互聯(lián)

截至到目前為止,其實(shí)我們已經(jīng)接觸了不少的python內(nèi)置函數(shù),而map函數(shù)也是其中之一,map函數(shù)是根據(jù)指定函數(shù)對指定序列做映射,在開發(fā)中使用map函數(shù)也是有效提高程序運(yùn)行效率的辦法之一.

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)深圳,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

python map函數(shù)(23)

一.語法定義

1

2

3

4

5

'''

function:函數(shù)名

iterable:一個(gè)序列或者多個(gè)序列,實(shí)際上這就是function對應(yīng)的實(shí)參

'''

map(function,iterable,...)

參數(shù):

function:函數(shù)名

iterable:一個(gè)序列或者多個(gè)序列,實(shí)際上這就是function對應(yīng)的實(shí)參

返回值:

返回值是迭代器,注意返回的結(jié)果只能迭代一次,如果需要多次使用請?zhí)崆氨4娼Y(jié)果并處理。

二.實(shí)戰(zhàn)練習(xí)

1.使用map函數(shù)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個(gè)人博客地址): shuopython.com

@WeChat Official Account(微信公眾號(hào)):猿說python

@Github:www.github.com

@File:python_map.py

@Time:2019/10/7 19:48

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

deffunc1(x):

# 對序列中的每一個(gè)元素乘以10并返回

returnx*10

'''

map() 會(huì)根據(jù)提供的函數(shù)對指定序列做映射。

序列中的每一個(gè)元素調(diào)用 func1 函數(shù),返回新列表。

'''

x=map(func1,range(0,10))

print(list(x))

# map函數(shù)返回的迭代器只能迭代一次,迭代之后會(huì)自動(dòng)清空

print(list(x))

print("***"*20)

# 將map函數(shù)返回的迭代器保存轉(zhuǎn)為list,可以多次使用

y=list(map(func1,range(0,10)))

print(y)

print(y)

輸出結(jié)果:

1

2

3

4

5

[0,10,20,30,40,50,60,70,80,90]

[]

************************************************************

[0,10,20,30,40,50,60,70,80,90]

[0,10,20,30,40,50,60,70,80,90]

2.map函數(shù)配合匿名函數(shù)一起使用

1

2

3

4

5

6

7

# map函數(shù)配合匿名函數(shù)使用

x=list(map(lambdaa:a*10,range(0,10)))# 序列中的每個(gè)元素乘以10

print(x)

# map函數(shù)配合匿名函數(shù)使用,匿名函數(shù)有兩個(gè)參數(shù),所以map傳參數(shù)應(yīng)該也是兩個(gè)序列

y=list(map(lambdaa,b:a+b,[1,2,3,5,6,7],[10,20,30,50,60,70]))# 兩個(gè)序列相加

print(y)

輸出結(jié)果:

1

2

[0,10,20,30,40,50,60,70,80,90]

[11,22,33,55,66,77]

注意:如果map()函數(shù)中的函數(shù)是多個(gè)參數(shù),那么map傳參的時(shí)候也應(yīng)該傳遞多個(gè)序列.

python map函數(shù)(23)

三.效率對比

對比以下效率,向列表中存入一千萬條數(shù)據(jù),比較下耗時(shí)情況:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

importtime

list1=list()

# 普通for循環(huán)

start=time.clock()

foriinrange(0,10000000):

list1.append(i)

print("普通for循環(huán)耗時(shí):",time.clock()-start)

# 列表推導(dǎo)式

list1.clear()

start=time.clock()

list1=[iforiinrange(0,10000000)]

print("列表推導(dǎo)式循環(huán)耗時(shí):",time.clock()-start)

# map映射函數(shù)

list1.clear()

start=time.clock()

list1=list(map(lambdax:x,range(0,10000000)))

print("map映射函數(shù)耗時(shí):",time.clock()-start)

輸出結(jié)果:

1

2

3

普通for循環(huán)耗時(shí):1.1869014999999998

列表推導(dǎo)式循環(huán)耗時(shí):0.5339119999999999

map映射函數(shù)耗時(shí):0.9047431000000001

根據(jù)測試結(jié)果看來:列表推導(dǎo)式效率 > map映射函數(shù) > 普通for循環(huán)

python map函數(shù)(23)

四.重點(diǎn)總結(jié)

1.map函數(shù)的參數(shù)是由函數(shù)和一個(gè)序列或者多個(gè)序列構(gòu)成;

2.map函數(shù)處理的結(jié)果是迭代器,而且只能迭代一次,如果需要多次使用,請?zhí)崆氨4妫?/p>

猜你喜歡:

1.python 內(nèi)置函數(shù)input/eval

2.python return邏輯判斷表達(dá)式

3.匿名函數(shù)

轉(zhuǎn)載請注明:猿說Python???python map函數(shù)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁名稱:pythonmap函數(shù)(23)-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://muchs.cn/article38/pcosp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站維護(hù)、品牌網(wǎng)站制作企業(yè)網(wǎng)站制作、定制開發(fā)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)