Python map 函数 -Python零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
Python map 函数 -Python零基础入门教程
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 一.前言
- 二.Python map 函數(shù)語(yǔ)法簡(jiǎn)介
- 三.Python map 函數(shù)實(shí)戰(zhàn)
- 1.使用 map 函數(shù)
- 2.map 函數(shù)配合 lambda 匿名函數(shù)一起使用
- 四.Python map 函數(shù)效率對(duì)比
- 五.Python map 函數(shù)總結(jié)
- 六.猜你喜歡
零基礎(chǔ) Python 學(xué)習(xí)路線推薦 : Python 學(xué)習(xí)目錄 >> Python 基礎(chǔ)入門
一.前言
截至到目前為止,其實(shí)我們已經(jīng)接觸了不少的 Python 內(nèi)置函數(shù),而 map 函數(shù)也是其中之一,map 函數(shù)是根據(jù)指定函數(shù)對(duì)指定序列做映射,在開發(fā)中使用 map 函數(shù)也是有效提高程序運(yùn)行效率的辦法之一.
二.Python map 函數(shù)語(yǔ)法簡(jiǎn)介
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python map 函數(shù).py @Time:2021/04/13 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""''' 參數(shù)描述:function:函數(shù)名iterable:一個(gè)序列或者多個(gè)序列,實(shí)際上這就是function對(duì)應(yīng)的實(shí)參 返回值:返回值是迭代器,注意返回的結(jié)果只能迭代一次,如果需要多次使用請(qǐng)?zhí)崆氨4娼Y(jié)果并處理。 ''' map(function, iterable, ...)# 注意返回的結(jié)果只能迭代一次 x = map(func1,range(0,10))print(list(x))//返回有數(shù)據(jù)的列表# map函數(shù)返回的迭代器只能迭代一次,迭代之后會(huì)自動(dòng)清空 print(list(x)) // 返回空列表三.Python map 函數(shù)實(shí)戰(zhàn)
1.使用 map 函數(shù)
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python map 函數(shù).py @Time:2021/04/13 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""def func1(x):# 對(duì)序列中的每一個(gè)元素乘以10并返回return x*10'''map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。序列中的每一個(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é)果:[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ù)配合 lambda 匿名函數(shù)一起使用
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python map 函數(shù).py @Time:2021/04/13 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""# map函數(shù)配合匿名函數(shù)使用 x = list(map(lambda a:a*10,range(0,10))) # 序列中的每個(gè)元素乘以10 print(x)# map函數(shù)配合匿名函數(shù)使用,匿名函數(shù)有兩個(gè)參數(shù),所以map傳參數(shù)應(yīng)該也是兩個(gè)序列 y = list(map(lambda a,b:a+b,[1,2,3,5,6,7],[10,20,30,50,60,70])) # 兩個(gè)序列相加 print(y)''' 輸出結(jié)果:[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ù)效率對(duì)比
對(duì)比一下效率,向列表 list 中存入一千萬(wàn)條數(shù)據(jù),比較下耗時(shí)情況:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python map 函數(shù).py @Time:2021/04/13 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""import time list1 = list()# 普通for循環(huán) start = time.clock() for i in range(0,10000000):list1.append(i) print("普通for循環(huán)耗時(shí):",time.clock() - start)# 列表推導(dǎo)式 list1.clear() start = time.clock() list1 = [i for i in range(0,10000000)] print("列表推導(dǎo)式循環(huán)耗時(shí):",time.clock() - start)# map映射函數(shù) list1.clear() start = time.clock() list1 = list(map(lambda x:x,range(0,10000000))) print("map映射函數(shù)耗時(shí):",time.clock() - start)''' 輸出結(jié)果:普通for循環(huán)耗時(shí): 1.1869014999999998 列表推導(dǎo)式循環(huán)耗時(shí): 0.5339119999999999 map映射函數(shù)耗時(shí): 0.9047431000000001 '''** 根據(jù)測(cè)試結(jié)果看來(lái):列表推導(dǎo)式效率 > map 映射函數(shù) > 普通for 循環(huán)**
五.Python map 函數(shù)總結(jié)
- 1.map 函數(shù)的參數(shù)是由函數(shù)和一個(gè)序列或者多個(gè)序列構(gòu)成;
- ** 2.map 函數(shù)處理的結(jié)果是迭代器,而且只能迭代一次,如果需要多次使用,請(qǐng)?zhí)崆氨4?#xff1b;**
六.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說(shuō)編程 ? Python map 函數(shù)
總結(jié)
以上是生活随笔為你收集整理的Python map 函数 -Python零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python变量 - Python零基础
- 下一篇: Python len函数 - Pytho