文章目录


本文讲解内容基于Python3.x,只涉及到较为基础的概念,仅仅只是博主的一个学习笔记,如有错误欢迎纠正!

map

对于map的简要描述

map()是 python 中内置的一个高阶函数,它接收一个函数 和一个可迭代对象,并通过把函数 f 依次作用在可迭代对象的每个元素上,得到一个新的迭代器(Python2则直接返回一个列表)

一个简单例子

def f(x):
return x * x
y = (1, 2, 3)
r = map(f, y)

在这里我们知道其返回一个迭代器,则使用如下的代码即可以访问每个元素

for i in r:
print(i)

当然还有其他方式,我们知道迭代器是一个惰性序列(简单讲仅仅在迭代至当前元素时才计算该元素的值,在此之前可以不存在,在此之后可以随时销毁,也就是说,在迭代过程中不是将所有元素一次性加载,这样便不需要考虑内存的问题),
因此通过​​​list()​​让它把整个序列都计算出来并返回一个list对象,针对上面那个代码;

print(list(r))

结合匿名函数使用

当然,很多时候我们都会将其与匿名函数一起使用,比如下面这种最基本的用法:

m = map(lambda x: x ** 2, [1,2,3,4,5])
print(list(m))

我们还可以为其提供多个列表:

m = map(lambda x, y: x ** 2 + y, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
print(list(m))

🌂拓展:当然,如果函数有多个参数, 但每个参数的序列元素数量不一样, 会根据最少元素的序列进行
上面的函数仅仅把第二个列表改为​​​[1,2,3]​​​ 那么得到的结果则是​​[2, 6, 12]​