Python Map 函数的使用

作者:雪梦科技 时间:2023-09-02 06:27:17 

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()函数作用于一个可迭代对象,使用一个函数,并且将函数应用于这个可迭代对象的每一个元素。

来源:https://cloud.tencent.com/developer/article/1660794

标签:python,map,函数
0
投稿

猜你喜欢

  • js表单验证控制代码大全

    2010-03-07 14:25:00
  • sql将一个表中的数据插入到另一个表中的方法

    2024-01-27 22:30:20
  • 解决pytorch-yolov3 train 报错的问题

    2023-11-26 04:14:29
  • 值得收藏的9个提高代码运行效率的小技巧(推荐)

    2022-08-01 04:13:05
  • Python PyQt5学习之样式设置详解

    2022-11-04 20:48:46
  • SQL Server下几个危险的扩展存储过程

    2024-01-18 06:49:25
  • Python设计模式行为型责任链模式

    2021-08-15 05:58:16
  • Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例

    2022-10-04 00:34:40
  • Python内存泄漏和内存溢出的解决方案

    2022-02-10 11:46:55
  • SQLserver中字符串查找功能patindex和charindex的区别

    2012-06-06 20:20:42
  • 使用python的pandas为你的股票绘制趋势图

    2023-12-29 19:48:46
  • 用PyInstaller把Python代码打包成单个独立的exe可执行文件

    2022-12-02 09:15:11
  • Python通过RabbitMQ服务器实现交换机功能的实例教程

    2023-08-24 01:15:19
  • Python中使用PyQt把网页转换成PDF操作代码实例

    2021-12-04 11:31:19
  • Python中使用PDB库调试程序

    2022-02-24 11:25:49
  • 系统高吞吐量下的数据库重复写入问题分析解决

    2024-01-17 07:37:21
  • Python实现读取文件最后n行的方法

    2023-08-02 10:33:32
  • Django中从mysql数据库中获取数据传到echarts方式

    2024-01-22 02:06:25
  • Python基于read(size)方法读取超大文件

    2022-06-06 12:27:15
  • CentOS安装SQL Server vNext CTP1教程

    2024-01-27 22:16:26
  • asp之家 网络编程 m.aspxhome.com