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