python的内建函数map

今天记录一个比较常用的函数,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

你可能感兴趣的:(python的内建函数map)