python map()用法

56 阅读2分钟

当你需要对一个可迭代对象(比如列表)中的每个元素应用同一个函数时,map() 函数非常有用。它会返回一个迭代器,该迭代器生成函数应用后的结果。

基本语法

map(function, iterable)
  • function 是要应用于每个元素的函数。
  • iterable 是一个或多个可迭代对象,如列表、元组等。

示例说明

假设有一个列表,里面包含了一些字符串类型的数字,我们希望将它们转换成整数类型。可以使用 map() 函数来实现这个转换过程。

示例 1:将字符串列表转换为整数列表

# 定义一个包含字符串数字的列表
str_numbers = ['10', '20', '30', '40', '50']

# 使用 map 将每个字符串转换为整数
int_numbers = list(map(int, str_numbers))

print(int_numbers)  # 输出: [10, 20, 30, 40, 50]

在这个例子中:

  • map(int, str_numbers) 将列表 str_numbers 中的每个元素都应用 int() 函数,将字符串转换为整数。
  • list() 函数将生成的迭代器转换为列表,以便我们可以直接查看结果。

示例 2:将两个列表对应位置的元素相加

假设我们有两个列表,分别存储了两组数值,我们希望对应位置的元素进行相加。

# 定义两个列表
list1 = [1, 2, 3, 4, 5]
list2 = [10, 20, 30, 40, 50]

# 使用 map 将对应位置的元素相加
result = list(map(lambda x, y: x + y, list1, list2))

print(result)  # 输出: [11, 22, 33, 44, 55]

在这个例子中:

  • lambda x, y: x + y 是一个匿名函数,表示对两个参数 xy 进行相加操作。
  • map(lambda x, y: x + y, list1, list2)list1list2 中对应位置的元素分别作为 xy,然后将结果放入结果列表中。

注意事项

  • map() 函数返回的是一个迭代器,如果要得到列表或其他类型的容器,需要使用 list() 等函数进行转换。
  • map() 函数可以应用于多个可迭代对象,但是要确保函数的参数数量与可迭代对象的数量匹配。

总结来说,map() 函数是一个非常便利的工具,可以用来简化对可迭代对象的批量操作,特别是在需要对每个元素应用相同操作时非常有用。