目录
- 一.前言
- 二.Python map 函数语法简介
-
三.Python map 函数实战
- 1.使用 map 函数
- 2.map 函数配合 lambda 匿名函数一起使用
- 四.Python map 函数效率对比
- 五.Python map 函数总结
- 六.猜你喜欢
零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
一.前言
截至到目前为止,其实我们已经接触了不少的 Python 内置函数 ,而 map 函数也是其中之一,map 函数是根据指定函数对指定序列做映射,在开发中使用 map 函数也是有效提高程序运行效率的办法之一.
二.Python map 函数语法简介
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:Python map 函数.py @Time:2021/04/13 07:37 @Motto:不积跬步无以至千里 ,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ ''' 参数描述: function:函数名 iterable:一个序列或者多个序列,实际上这就是function对应的实参 返回值: 返回值是迭代器 ,注意返回的结果只能迭代一次,如果需要多次使用请提前保存结果并处理 。 ''' map(function, iterable, ...) # 注意返回的结果只能迭代一次 x = map(func1,range(0,10)) print(list(x))//返回有数据的列表 # map函数返回的迭代器只能迭代一次,迭代之后会自动清空 print(list(x)) // 返回空列表
三.Python map 函数实战
1.使用 map 函数
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:Python map 函数.py @Time:2021/04/13 07:37 @Motto:不积跬步无以至千里,不积小流无以成江海 ,程序人生的精彩需要坚持不懈地积累! """ def func1(x): # 对序列中的每一个元素乘以10并返回 return x*10 ''' map() 会根据提供的函数对指定序列做映射。 序列中的每一个元素调用 func1 函数,返回新列表。 ''' x = map(func1,range(0,10)) print(list(x)) # map函数返回的迭代器只能迭代一次,迭代之后会自动清空 print(list(x)) print("***"*20) # 将map函数返回的迭代器保存转为list ,可以多次使用 y = list(map(func1,range(0,10))) print(y) print(y) ''' 输出结果: [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 函数配合 lambda 匿名函数一起使用
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:Python map 函数.py @Time:2021/04/13 07:37 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ # map函数配合匿名函数使用 x = list(map(lambda a:a*10,range(0,10))) # 序列中的每个元素乘以10 print(x) # map函数配合匿名函数使用 ,匿名函数有两个参数,所以map传参数应该也是两个序列 y = list(map(lambda a,b:a+b,[1,2,3,5,6,7],[10,20,30,50,60,70])) # 两个序列相加 print(y) ''' 输出结果: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] [11, 22, 33, 55, 66, 77] '''
注意:如果 map 函数中的函数是多个参数,那么 map 传参的时候也应该传递多个序列.
四.Python map 函数效率对比
对比一下效率 ,向列表 list 中存入一千万条数据,比较下耗时情况:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:Python map 函数.py @Time:2021/04/13 07:37 @Motto:不积跬步无以至千里,不积小流无以成江海 ,程序人生的精彩需要坚持不懈地积累! """ import time list1 = list() # 普通for循环 start = time.clock() for i in range(0,10000000): list1.append(i) print("普通for循环耗时:",time.clock() - start) # 列表推导式 list1.clear() start = time.clock() list1 = [i for i in range(0,10000000)] print("列表推导式循环耗时:",time.clock() - start) # map映射函数 list1.clear() start = time.clock() list1 = list(map(lambda x:x,range(0,10000000))) print("map映射函数耗时:",time.clock() - start) ''' 输出结果: 普通for循环耗时: 1.1869014999999998 列表推导式循环耗时: 0.5339119999999999 map映射函数耗时: 0.9047431000000001 '''
** 根据测试结果看来:列表推导式效率 > map 映射函数 > 普通for 循环**
五.Python map 函数总结
- 1.map 函数的参数是由函数和一个序列或者多个序列构成;
- ** 2.map 函数处理的结果是迭代器 ,而且只能迭代一次,如果需要多次使用,请提前保存;**
六.猜你喜欢
- Python 字符串/列表/元组/字典之间的相互转换
- Python 局部变量和全局变量
- Python type 函数和 isinstance 函数区别
- Python is 和 == 区别
- Python 可变数据类型和不可变数据类型
- Python 浅拷贝和深拷贝
- Python 递归函数
- Python sys 模块
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
- Python 函数声明和调用
- Python 不定长参数 *argc/**kargcs
未经允许不得转载:猿说编程 » Python map 函数
本文由博客 - 猿说编程 猿说编程 发布!