在 python 当中经常会操作列表这样的可迭代对象,如果有多层嵌套列表,操作起来会非常麻烦,用 map 可以让代码可读性增强。

什么是map函数
map 函数是 python 内置函数,可以根据对列表这样的可迭代类型做进一步操作。

在新的 python3 中,map 不再是一个函数,而是一个类,但是还是习惯被称为内置函数,官网也没有更正。所以之后我们还是称为 map 函数。

python的map用法 python中map的作用_程序员


map 函数有 2 个参数,参数 function 表示要对每一个元素进行的操作,参数 iterables 是一个可迭代对象。

返回值是经过 function 操作后的新对象, 在 python3 中是一个 map 对象。

(map 函数解释图)

python的map用法 python中map的作用_python_02


看一个例子:在这个例子中,我们需要对 origin_iterable 这个列表中的每一个元素求绝对值,得到新数据。由于 map 返回值是一个 map 对象,需要转化成 list 才能得到 [1, 3, 5]

python的map用法 python中map的作用_python的map用法_03


除了列表,map 也可以操作元组:

python的map用法 python中map的作用_python的map用法_04


也可以操作 set 集合:

python的map用法 python中map的作用_测试工程师_05


可以操作字典,但是操作的是 key :

python的map用法 python中map的作用_程序员_06


function参数

map(function, *iterable) 第一个参数 function 是一个任意的函数。如果后面只有一个参数, function 函数接收一个参数。

如果后面有 2 个参数, function 函数则需要接收 2 个参数, 参数是 iterable 当中的元素。

python的map用法 python中map的作用_程序员_07


python的map用法 python中map的作用_软件测试_08


对多个数据进行格式转化

现在有一个二维数据需要处理,比如 Excel 中的数据,或者数据库当中的数据。每个数据都是一个对象 Cell, 我想取出其中的值。

python的map用法 python中map的作用_测试工程师_09