Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-map.html

python 根据提供的函数对指定序列做映射的内置函数 map 详解

Python 内置函数 Python 内置函数


map 是 Python 的内置函数之一,用于对一个可迭代对象(如列表、元组等)中的每个元素应用一个指定的函数,并返回一个由函数返回值组成的新的可迭代对象。下面我将详细解释 map 函数的语法,提供多个示例代码,每个示例都包括运行结果,并最后对该函数进行总结。

函数语法

map 函数的语法如下:

map(function, iterable, ...)

参数:

  • function : 这是一个必需的参数,代表了要应用于每个可迭代对象中元素的函数。
  • iterable : 这是一个或多个可迭代对象(如列表、元组等),可以传递多个可迭代对象,但 function 必须接受相同数量的参数,以便将它们应用于每个可迭代对象的对应元素。如果传递了多个可迭代对象,map 函数将在最短的可迭代对象用尽后停止迭代。
  • ... : 可选的额外可迭代对象,可以传递任意数量的可迭代对象,但必须与 function 兼容。

map 返回一个迭代器,可以将其转换为列表或其他可迭代对象以获取结果。

示例代码

示例 1: 对列表的每个元素进行平方操作

def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)

# 转换为列表以查看结果
result_list = list(result)

print(result_list)

运行结果:

[1, 4, 9, 16, 25]

示例 2: 对两个列表对应元素进行相加操作

def add(x, y):
    return x + y

list1 = [1, 2, 3, 4, 5]
list2 = [10, 20, 30, 40, 50]
result = map(add, list1, list2)

# 转换为列表以查看结果
result_list = list(result)

print(result_list)

运行结果:

[11, 22, 33, 44, 55]

示例 3: 使用 lambda 函数进行映射

numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * 2, numbers)

# 转换为列表以查看结果
result_list = list(result)

print(result_list)

运行结果:

[2, 4, 6, 8, 10]

总结

map 函数是一个非常有用的函数,它可以轻松地对可迭代对象中的元素应用指定的函数,生成一个新的可迭代对象。要注意以下几点:

  • map 的第一个参数是要应用的函数,可以是自定义函数也可以是 lambda 函数。
  • map 可以接受一个或多个可迭代对象,但这些可迭代对象的元素数量必须相等,否则 map 将在最短的可迭代对象用尽后停止。
  • map 返回一个迭代器,可以通过将其转换为列表或使用 for 循环来访问结果。
  • map 通常用于对大量数据进行批量操作,以提高代码的效率和可读性。