两分钟掌握map函数的工作原理

map 函数是一个非常有用的工具,它允许你对一个可迭代对象(如列表或数组)中的每个元素应用一个函数,并返回一个新的可迭代对象,其中包含了应用函数后的结果。

基本语法如下:

map(function, iterable, ...)
  • function 是一个将被应用到 iterable 每个元素上的函数。
  • iterable 是一个或多个可迭代对象。

工作原理是这样的:

  1. map 函数遍历 iterable 中的每个元素。
  2. 对于每个元素,map 函数都会调用 function。
  3. function 的返回值会被收集起来,形成一个新的可迭代对象。

例如,如果我们有一个数字列表,我们想要获取每个数字的平方,可以这样做:

def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result))  # 输出: [1, 4, 9, 16, 25]

在这个例子中,square 函数被应用到 numbers 列表中的每个元素上,结果是每个数字的平方。

map 函数也支持使用 lambda 表达式,这使得代码更加简洁:

numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x ** 2, numbers)
print(list(result))  # 输出: [1, 4, 9, 16, 25]

需要注意的是,map 函数返回的是一个迭代器,这意味着它会惰性计算,只有在你需要结果时才会计算。这对于处理大型数据集非常有用,因为它可以帮助节省内存。

最后,map 函数可以接受多个 iterable,这时候 function 需要有相应数量的参数来接收每个 iterable 中对应位置的元素:

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

numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
result = map(add, numbers1, numbers2)
print(list(result))  # 输出: [5, 7, 9]

在这个例子中,add 函数将两个列表中相同位置的数字相加。

原文链接:,转发请注明来源!