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 开发Activex组件方法
Nov 08 Python
python实现备份目录的方法
Aug 03 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
对Python信号处理模块signal详解
Jan 09 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
零基础学Python之前需要学c语言吗
Jul 21 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
用header 发送cookie的php代码
2007/03/16 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
javascript天然的迭代器
2010/10/29 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
再论Javascript的类继承
2011/03/05 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python字符串对其居中显示的方法
2015/07/11 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
使用python生成目录树
2018/03/29 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python读取并写入mat文件的方法
2019/07/12 Python
PyTorch中的Variable变量详解
2020/01/07 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
单位在职证明书
2014/09/11 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书