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 12 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
python直接访问私有属性的简单方法
Jul 25 Python
微信跳一跳python辅助脚本(总结)
Jan 11 Python
python处理csv中的空值方法
Jun 22 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
python代理工具mitmproxy使用指南
Jul 04 Python
Django使用Jinja2模板引擎的示例代码
Aug 09 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
python 实现生成均匀分布的点
Dec 05 Python
python与pycharm有何区别
Jul 01 Python
python制作微博图片爬取工具
Jan 16 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求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
destoon官方标签大全
2014/06/20 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
js常用函数 不错
2006/09/08 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Python lambda表达式用法实例分析
2018/12/25 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
初一家长会邀请函
2014/01/31 职场文书
物业消防安全责任书
2014/07/23 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
公司门卫岗位职责
2015/04/13 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
深入理解python协程
2021/06/15 Python