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之类的细节
Oct 13 Python
浅要分析Python程序与C程序的结合使用
Apr 07 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
Django model反向关联名称的方法
Dec 15 Python
python实现词法分析器
Jan 31 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
使用python turtle画高达
Jan 19 Python
python函数中将变量名转换成字符串实例
May 11 Python
python怎么判断模块安装完成
Jun 19 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/05/02 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
技术人员面试提纲
2013/11/28 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
副总经理岗位职责
2014/03/16 职场文书
幼师辞职信范文
2015/02/27 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Python编写冷笑话生成器
2022/04/20 Python