今天记录一个比较常用的函数,map。
map()
首先map函数是内建函数,和我们常用的len()之类的函数是一样的,不需要任何引用,也不属于任何对象。
简单瞅一眼函数定义
image.png在init函数中我们看到了,它需要两个参数,其中一个是函数,另一个是可迭代对象。
它的作用就是遍历可迭代对象,对迭代的每个元素都执行这个函数。
复习一下可迭代对象,实现了iter函数的对象都是可迭代对象,python内建了很多这样的对象,比如我们熟知的list,dict,tuple,str等等。
简单用法
现在我们来实现一个功能,让一个list中的每个元素都+1(list中都是数值类型)
def addOne(x):
return x + 1
l = [1, 2, 3, 4]
new_list = map(addOne, l)
print(l)
print(list(new_list))
首先要现在定义一个功能函数,这个函数的作用就是你要对list中每个元素所做的操作,比如我们现在要做的,给每个元素+1。
然后声明了一个含有4个整数的list。
用一个变量来接受map()函数的结果。
它的执行过程是,把l看做迭代器对象,每次取出一个,作为参数传递给addOne函数,那么addOne函数拿到了参数后会执行一遍,然后取出下一个对象,重复以上的步骤。
直至所有元素都执行了一遍,返回一个map对象。
那么我们需要使用list()函数把map对象转换成list对象,这样就能看到最终的结果了。
注意,在python2中是直接返回一个list的,而非map对象。也就是说,不需要使用list()函数进行转换了。
看一眼执行的结果吧:
image.png
网友评论