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编写一个闹钟功能
Jul 11 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
python实现决策树ID3算法的示例代码
May 30 Python
python之django母板页面的使用
Jul 03 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
Python 生成VOC格式的标签实例
Mar 10 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
python等待10秒执行下一命令的方法
Jul 19 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
Python实现双向链表基本操作
May 25 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python实现坦克大战
2020/04/24 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
毕业生在校学习的自我评价分享
2013/10/08 职场文书
中学教师培训制度
2014/01/31 职场文书
网络技术专业推荐信
2014/02/20 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
中班开学寄语
2014/04/04 职场文书
《假如》教学反思
2014/04/17 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python