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 0x7f722da129e8>
{16, 1, 4, 9}
map() 函数为迭代中的每个项目执行指定的函数。该项目作为参数发送到函数。
map(function, iterables)
Map 将函数应用于 input_list 中的所有项目。
大多数时候,我们希望将所有列表元素一个接一个地传递给一个函数,然后收集输出。例如:
items = [1, 2, 3, 4, 5]
squared = []
for i in items:
squared.append(i**2)
Map 允许我们以更简单和更好的方式实现这一点。给你:
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
map 并不是特别像 Python 的。我建议改用列表推导:
map(f, iterable)
基本上相当于:
[f(x) for x in iterable]
map 本身不能做笛卡尔积,因为它的输出列表的长度总是和它的输入列表一样。不过,您可以通过列表理解轻松地做笛卡尔积:
[(a, b) for a in iterable_a for b in iterable_b]
语法有点混乱——基本上相当于:
result = []
for a in iterable_a:
for b in iterable_b:
result.append((a, b))