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中使用语句导入模块或包的机制研究
Mar 30 Python
简单的编程0基础下Python入门指引
Apr 01 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
Python检查ping终端的方法
Jan 26 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
python字符串格式化方式解析
Oct 19 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
基于FME使用Python过程图解
May 13 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
Python try except finally资源回收的实现
Jan 25 Python
在python中实现导入一个需要传参的模块
May 12 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 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版 汉字转码的实现详解
2013/06/09 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
Vue header组件开发详解
2018/01/26 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
详解python3中zipfile模块用法
2018/06/18 Python
python创建学生管理系统
2019/11/22 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
校园主题婚礼活动策划方案
2014/09/15 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
mysql创建存储过程及函数详解
2021/12/04 MySQL