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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
Python实现全角半角转换的方法
Aug 18 Python
python Django框架实现自定义表单提交
Mar 25 Python
python3库numpy数组属性的查看方法
Apr 17 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
django自带调试服务器的使用详解
Aug 29 Python
django 数据库返回queryset实现封装为字典
May 19 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
python实现定时发送邮件
Dec 23 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下目前为目最全的CURL中文说明
2010/08/01 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
原生JS轮播图插件
2017/02/09 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
大学生的网络创业计划书
2013/12/26 职场文书
员工培训邀请函
2014/02/02 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
给校长的建议书300字
2014/05/16 职场文书
个人授权委托书格式
2014/08/30 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python