(翻译文)
map() 函数将函数(function)应用于可迭代对象(iterable)的每一项(列表,元组等),并返回结果列表。map() 的语法为:
map(function, iterable, ...)
map() 参数
- function - map() 将 iterable 的每一项传递到该函数;
- iterable - 需要映射的可迭代对象
你可以向 map() 函数传递多个可迭代对象。
map() 返回值
map() 函数将可迭代的每一项传递给函数,每一项的计算结果组成一个列表,这个结果列表就是map函数的返回值。然后,可以将map函数的返回值(map对象)传递给诸如list(用于创建一个列表),set(用于创建一个集合)之类的函数,用于其他计算或打印输出。
示例1:执行map函数
def calculateSquare(n):
return n*n
numbers = (1, 2, 3, 4)
result = map(calculateSquare, numbers)
print(result)
# converting map object to set
numbersSquare = set(result)
print(numbersSquare)
输出:
<map object at 0x7efe0e78e2b0>
{16, 1, 4, 9}
在上面的示例中,元组的每一项都是被计算了平方。
由于map()需要传入一个函数,lambda函数经常会和map()函数一起使用。Lambda函数是匿名的简短函数,相关介绍点击链接
示例2:如何在 map() 中使用lambda函数
numbers = (1, 2, 3, 4)
result = map(lambda x: x*x, numbers)
print(result)
# converting map object to set
numbersSquare = set(result)
print(numbersSquare)
输出:
<map object at 0x7fdafad21278>
{16, 1, 4, 9}
该示例和示例1在功能上没有差异。
示例3:使用Lambda将多个迭代器传递给map()
在此示例中,添加了两个列表的对应项。
num1 = [4, 5, 6]
num2 = [5, 6, 7]
result = map(lambda n1, n2: n1+n2, num1, num2)
print(list(result))
输出:
[9, 11, 13]
参考文档
https://www.programiz.com/python-programming/methods/built-in/map