python map函数详解

python中有些内置的高阶函数,如map(),filter(),reduce();之所以称其为高阶函数,因为这类函数接受的参数中有一个参数为函数对象。

map()函数格式:map(func,seq1[,seq2,……])

map函数接收的第一个参数为一个函数对象,后面接收1个或多个序列;map函数会将func作用在后面序列中的各个值上,并返回一个迭代器。

举例:

def func(a):return a**2
>>>map(func,[1,2,3])
<map object at 0x000002B127AEA700>#返回一个map对象,为一个迭代器;
>>>list(map(func1,[1,2,3]))
[1, 4, 9]#将1,2,3作为参数逐个传入func中,分别得到1,4,9;最后将结果转换为list

也可以传入多个序列,一个序列对应一个函数的参数;序列长度可以不一致,默认取到共同长度的序列值为止;

举例:

def func(a,b):return a+b>>>b=list(map(func,[10,20,30],[1,3,10]))#两个序列对应位置的值分别作为a,b作用到func中;
>>>print(b)
[11, 23, 40]#>>>list(map(func,[10,20,30,40],[1,3,10]))#长度不一致,默认取到长度相同的一段序列
[11, 23, 40]>>>list(map(func,[1,2,3],[10,20,30,40],[1,3,10]))#序列数量必须和func的参数数量一致
TypeError: func() takes 2 positional arguments but 3 were given
>>>b=list(map(func,[1,2,3]))
TypeError: func() missing 1 required positional argument: 'b'

可以看到,map()函数实现的功能和for循环以及列表推导式非常类似,那么map和for循环以及列表推导式的各自效率如何?

举例说明:

  1. map方式实现
import time
start=time.time()
def func(a,b):return a+b
c=list(map(func,range(1000000),range(1000000)))
end=time.time()
>>>end-start
0.16860485076904297
  1. for循环方式实现
import time
start=time.time()
c=list()
for i in range(1000000):c.append(i+i)
end=time.time()
>>>end-start
0.2443540096282959
  1. 列表推导式实现
import time
a=list(range(1000000))
b=list(range(1000000))
start=time.time()
c=[a[i]+b[i] for i in range(1000000)]
end=time.time()
print(end-start)0.2124321460723877

从上面对比可以看到,map的效率最高,for循环的效率最低;

基于map的这类功能和效率,在项目开始涉及到较多循环时,均可多考虑能否用Map替代for循环,一方面代码更为简介和pythonic,另一方面代码的时间效率会更高;

python map函数详解相关推荐

  1. pythonpandas函数详解_对pandas中Series的map函数详解

    Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...

  2. Python hash函数详解

    Python hash函数详解 hash函数功能介绍 hash() 用于获取取一个对象(字符串或者数值等)的哈希值. hash函数的参数必须为不可变类型参数 ​ 因为hash值是唯一且不可变的,如果参 ...

  3. python input函数详解_对Python3中的input函数详解

    下面介绍python3中的input函数及其在python2及pyhton3中的不同. python3中的ininput函数,首先利用help(input)函数查看函数信息: 以上信息说明input函 ...

  4. python average函数详解_python基础之函数详解

    Python基础之函数详解 一.函数的定义 到现在为止,我们已经掌握了Python的基本语法和数据类型等相关基础知识了,以进行一个项目的编写了,这个时候,就会发现,很多代码需要我们进行复制粘贴,这简直 ...

  5. python中的map()函数详解

    map()函数 """map(func, *iterables) --> map objectMake an iterator that computes the ...

  6. Python 函数 | map 函数详解

    博友们,你们好,很高兴能在这里和大家分享技术文章,我是 Amo Xiang,是一名在职企业员工,Amo 来源于上家公司的英文名,本意是 爱.作为刚入行几年互联网行业的小白,博主写博客一方面是为了记录自 ...

  7. python int函数详解_Python内置函数OCT详解

    英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...

  8. python average函数详解_python 函数详解

    函数函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分 ...

  9. python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理

    原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...

最新文章

  1. python提高办公效率-用Python的这3个优点,让工作效率提升一倍
  2. POJ 图算法(3)
  3. 【常用】加载配置文件管理资源路径
  4. 在现代引擎游戏中使用正确的渲染打光流程
  5. MySQL+号的作用
  6. SAP Spartacus把指定产品添加到购物车的API
  7. 记一次 .NET 某电商定向爬虫 内存碎片化分析
  8. android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...
  9. opencv-api threshold
  10. hibernate的环境搭建
  11. Android GridView如何适配不同屏幕
  12. 如何使用MongoDB+Springboot实现分布式ID?
  13. 汇编学习--6.13--基础知识
  14. 如何从Mac删除Bing重定向
  15. Python基础语句
  16. office2013打开出现配置进度
  17. 大型地震灾害应急通信系统解决方案
  18. 凯立德导航android历史版本,凯立德导航升级2020版
  19. matlab 雷达工具箱,Matlab:8个实用的Matlab工具箱
  20. RMAN备份归档日志时的not backed up与catalog数据库结合时的问题

热门文章

  1. 笔记本电脑提示:已关闭无线功能
  2. Flutter 夜间/日间模式切换
  3. SAR信号处理之窗函数7——汉宁(Hanning)窗
  4. explan语句说明
  5. STM32的USART串口通讯
  6. 智能声控灯具语音识别芯片方案
  7. mapbox中对同一个图层layer,设置不同颜色要素
  8. Aseprite 编译教程
  9. 工作三年后的胡思乱想
  10. 泰克Tektronix DPO5204B混合信号示波器