python中的map()函数

map(functioniterable...)

1.对可迭代函数'iterable'中的每一个元素应用‘function’方法,将结果作为list返回。

>> def add100(x):
...     return x+100
...
>>> hh = [11,22,33]
>>> map(add100,hh)
[111, 122, 133]

如果是python 3见上一篇博客。

2、如果给出了额外的可迭代参数,则对每个可迭代参数中的元素‘并行’的应用‘function’。(翻译的不好,这里的关键是‘并行’)

>>> def abc(a, b, c):
...     return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]

3、如果'function'给出的是‘None’,自动假定一个‘identity’函数(这个‘identity’不知道怎么解释,看例子吧)

>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]

介绍到这里应该差不多了吧!不过还有东西可以挖掘:

有人说可以这样理解map():

map(f, iterable)基本上等于:[f(x) for x in iterable]

赶快试一下:

>>> def add100(x):
...     return x + 100
...
>>> list1 = [11,22,33]
>>> map(add100,list1)
[101, 102, 103]>>> [add100(i) for i in list1]
[101, 102, 103]

哦,输出结果一样。原来map()就是列表推导式啊!要是这样想就错了:这里只是表面现象!再来个例子看看:

>>> def abc(a, b, c):
...     return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]

这个例子我们在上面看过了,若是用列表推导应该怎么写呢?我想是这样的:

[abc(a,b,c) for a in list1 for b in list2 for c in list3]

但是看到结果,发现根本不是这么回事:

[114477, 114488, 114499, 115577, 115588, 115599, 116677, 116688, 116699, 224477, 224488, 224499, 225577, 225588, 225599, 226677, 226688, 226699, 334477, 334488, 334499, 335577, 335588, 335599, 336677, 336688, 336699]

这便是上面列表推导的结果。怎么会这么多?当然了列表推导可以这么写:

result = []for a in list1:for b in list2:for c in list3:result.append(abc(abc))

原来如此,若是将三个list看做矩阵的话:

11 22 33
44 55 66
77 88 99

map()只做了列上面的运算,而列表推导(也就是嵌套for循环)做了笛卡尔乘积

参考:http://infohost.nmt.edu/tcc/help/pubs/python/web/map-function.html

Python中map函数相关推荐

  1. python中map()函数总结

    ** python中map()函数总结 ** 1.关于map()函数 (1)map函数是python中的一个内置函数,做映射. (2)map()函数返回的是一个新的迭代器对象,不会改变原有对象! 2. ...

  2. python中map()函数无法输出

    目录 1.用法 2.输出 map返回是一个迭代器,需要转换成列表格式才能输出 1.用法 map(function, x) 如一下都是可以正常使用的方法,函数对x中每个元素进行计算 num = map( ...

  3. python中 map函数 的使用

    1. 概念 map函数也是python中的一个内置函数,用法同之前讲过的filter函数类似.map在这里的意思是映射的意思,会根据提供的函数对指定序列做映射. map函数会返回一个迭代器,如果要转换 ...

  4. python中map函数是什么意思_python中map什么意思

    python中map什么意思? python中map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 func ...

  5. python中map函数的简单使用

    Map函数的简单使用 map函数中的第一个参数是方法名,第二个参数是可以迭代的对象,第三个位置,第四个-也可以传参数,传进去的也是可迭代的对象,例如列表,字典,元组,字符串.这个函数会依次把可迭代对象 ...

  6. python中map函数运行原理_Python中map函数的解释和可视化

    先重温一下迭代(Iteration).迭代器对象(iterable).迭代器(iterator )的概念: Iteration是计算机科学的通用术语,它是指对一组元素执行一项操作,一次执行一个元素.一 ...

  7. Python中map()函数浅析

    MapReduce的设计灵感来自于函数式编程,这里不打算提MapReduce,就拿python中的map()函数来学习一下. 文档中的介绍在这里: map(function, iterable, .. ...

  8. Python中map()函数用法

    map() 是python的内置函数,会根据提供的函数对指定序列做映射. 对可迭代函数*iterables中的每个元素应用func方法,将结果作为迭代器对象返回. 注意:map()函数返回的是一个新的 ...

  9. map函数python返回值,Python中map函数使用

    图片发自简书App map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 1.当se ...

  10. python中map函数返回值类型_Python学习第42课-map()函数

    [每天几分钟,从零入门python编程的世界!] 今天我们学习另一个比较常用的内置函数map(). ●描述 map()会根据提供的函数对指定迭代器做映射. 它有两个参数,第一个参数是一个函数,第二个参 ...

最新文章

  1. Android实现仿QQ登录界面背景动画效果
  2. Angular2+ 结构型指令
  3. JAVA技术周刊第一期:关于JVM你了解多少?看这篇文章就够了!
  4. 【原创】如何找回source insight context window?(作者:gooogleman)
  5. 调多线程中的消息发送
  6. 矩池云安装利用pip、apt、conda安装需要的包
  7. arch linux界面优化,ArchLinux美化之界面美化
  8. VS+VSS代码管理
  9. mybatis3动态创建表,判断表是否存在,删除表
  10. dreamweaver网页设计作业制作 学生个人网页单页 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品简单页面
  11. 2022.10.25 固体物理
  12. [Noi2010]航空管制
  13. kafka auto.offset.reset latest earliest 详解
  14. MIT四足机器人MIT Cheetah的硬件框架
  15. 微信小程序-实现元素渐入渐出动画效果-封装方法
  16. 全国大学生节能减排社会实践与科技竞赛最新作品模板资料国家一等奖完整申报书说明书ppt
  17. Java获取2021年所有日期和节假日工作日状态
  18. creator网页调试工具(ccc-devtools v3.0.1)
  19. 心目中的编程高手,经典计算机书籍作者介绍(部分,以后不定期更新)!
  20. 中关村科技企业家协会网安创新分会在京成立,墨云科技成为首批会员单位

热门文章

  1. java多线程复习与巩固(三)
  2. linux C/C 服务器后台开发面试题总结
  3. 漏洞扫描工具fortifySCA安装网盘
  4. 计算机科技有限公司祝贺词,科技界新年祝贺词
  5. (转)如何根据RGB值来判断这是种什么颜色?
  6. 初秋便当 | 味蕾的精致体验~肽享健康
  7. 在校大一学生该怎样学习
  8. 微信8.0android版本,微信相继更新了 iOS 和 Android 的 8.0x 大版本更新
  9. 半年涨粉千万,谁在追“探店”的风口?
  10. (c语言)输入两个数字,分别计算并输出这两个数字的和、差、乘积、商