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 实现一行输入多个值的方法
Apr 21 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python用plt画图时,cmp设置方法
Dec 13 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python tornado修改log输出方式
Nov 18 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
如何写python的配置文件
Jun 07 Python
python退出循环的方法
Jun 18 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 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面向对象程序设计中self与static的区别分析
2019/05/21 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
python中快速进行多个字符替换的方法小结
2016/12/15 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
Python实现学生成绩管理系统
2020/04/05 Python
python中logging包的使用总结
2018/02/28 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
django foreignkey(外键)的实现
2019/07/29 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
绩效专员岗位职责
2013/12/02 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
买卖车协议书
2014/04/21 职场文书
物业管理专业求职信
2014/06/11 职场文书
世界读书日的活动方案
2014/08/20 职场文书
优秀教师单行材料
2014/12/16 职场文书
检讨书范文2000字
2015/01/28 职场文书
党小组鉴定意见
2015/06/02 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
如何用JavaScript学习算法复杂度
2021/04/30 Javascript