Python Map 函数的使用


Posted in Python onAugust 28, 2020

map()是一个 Python 内建函数,它允许你不需要使用循环就可以编写简洁的代码。

一、Python map() 函数

这个map()函数采用以下形式:

map(function, iterable, ...)

它需要两个必须的参数:

  • function - 针对每一个迭代调用的函数
  • iterable - 支持迭代的一个或者多个对象。在 Python 中大部分内建对象,例如 lists, dictionaries, 和 tuples 都是可迭代的。

在 Python 3 中,map()返回一个与传入可迭代对象大小一样的 map 对象。在 Python 2中,这个函数返回一个列表 list。

让我们看看一个例子,更好地解释map()函数如何运作的。假如我们有一个字符串列表,我们想要将每一个元素都转换成大写字母。

想要实现这个目的的一种方式是,使用传统的for循环:

directions = ["north", "east", "south", "west"]
directions_upper = []

for direction in directions:
  d = direction.upper()
  directions_upper.append(d)

print(directions_upper)

输出:

['NORTH', 'EAST', 'SOUTH', 'WEST'

使用 map() 函数,代码将会非常简单,非常灵活。

def to_upper_case(s):
  return s.upper()

directions = ["north", "east", "south", "west"]

directions_upper = map(to_upper_case, directions)

print(list(directions_upper))

我们将会使用list()函数,来将返回的 map 转换成 list 列表:

输出:

['NORTH', 'EAST', 'SOUTH', 'WEST']

如果返回函数很简单,更 Python 的方式是使用 lambda 函数:

directions = ["north", "east", "south", "west"]

directions_upper = map(lambda s: s.upper(), directions)

print(list(directions_upper))

一个 lambda 函数是一个小的匿名函数。
下面是另外一个例子,显示如何创建一个列表,从1到10。

squares = map(lambda n: n*n , range(1, 11))
print(list(squares))

输出:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

`range()` 函数生成一系列的整数。

二、对多个迭代对象使用map()

你可以将任意多的可迭代对象传递给map()函数。回调函数接受的必填输入参数的数量,必须和可迭代对象的数量一致。

下面的例子显示如何在两个列表上执行元素级别的操作:

def multiply(x, y):
 return x * y

a = [1, 4, 6]
b = [2, 3, 5]

result = map(multiply, a, b)

print(list(result))

输出:

[2, 12, 30]

同样的代码,使用 lambda 函数,会像这样:

a = [1, 4, 6]
b = [2, 3, 5]

result = map(lambda x, y: x*y, a, b)

print(list(result))

当提供多个可迭代对象时,返回对象的数量大小和最短的迭代对象的数量一致。

让我们看看一个例子,当可迭代对象的长度不一致时:

a = [1, 4, 6]
b = [2, 3, 5, 7, 8]

result = map(lambda x, y: x*y, a, b)

print(list(result))

超过的元素 (7 和 8 )被忽略了。

[2, 12, 30]

三、总结

Python 的 map()函数作用于一个可迭代对象,使用一个函数,并且将函数应用于这个可迭代对象的每一个元素。

以上就是Python Map 函数的使用的详细内容,更多关于Python Map 函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
简单介绍Python中的try和finally和with方法
May 05 Python
详解Python验证码识别
Jan 25 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python 实现随机数详解及实例代码
Apr 15 Python
Python 加密的实例详解
Oct 09 Python
python中列表的切片与修改知识点总结
Jul 23 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
Python pandas如何向excel添加数据
May 22 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
深入了解Python 变量作用域
Jul 24 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
python实现单机五子棋
Aug 28 #Python
Python3+selenium配置常见报错解决方案
Aug 28 #Python
Python 中如何写注释
Aug 28 #Python
Python操作Word批量生成合同的实现示例
Aug 28 #Python
Python接口自动化测试的实现
Aug 28 #Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 #Python
Python自动登录QQ的实现示例
Aug 28 #Python
You might like
理解php Hash函数,增强密码安全
2011/02/25 PHP
php变量范围介绍
2012/10/15 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
Node.js中的cluster模块深入解读
2018/06/11 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
利用python循环创建多个文件的方法
2018/10/25 Python
Python项目打包成二进制的方法
2020/12/30 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
商场总经理岗位职责
2014/02/03 职场文书
公司活动方案范文
2014/03/06 职场文书
二手房购房意向书
2015/05/09 职场文书
走近毛泽东观后感
2015/06/04 职场文书
休假证明书
2015/06/24 职场文书
暑假打工感想
2015/08/07 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python