Python提供了三个非常有用的全局函数,我们可以用来处理集合:map()filter()reduce()

提示:有时使用列表推导更加合适,而且通常被认为更加“Pythonic”。

map()用于对可迭代的项(如列表)中的每个项运行一个函数,并创建一个具有相同数量项的新列表,但每个项的值可以更改。

下面是一个使用map()将列表中的每个项加倍的示例:

numbers = [1, 2, 3]

def double(a):
    return a * 2

result = map(double, numbers)

当函数是一行代码时,通常使用lambda函数:

numbers = [1, 2, 3]

double = lambda a: a * 2

result = map(double, numbers)

甚至可以内联使用lambda函数:

numbers = [1, 2, 3]

result = map(lambda a: a * 2, numbers)

原始列表保持不变,map()返回一个具有更新值的新列表。

结果是一个map对象,一个可迭代对象,您需要将其转换为list才能打印其内容:

print(list(result))  # [2, 4, 6]