介绍高阶函数 map() 的使用方法。
工具/原料
python3.7版
pycharm社区版
1.查看map()函数说明文档
1、①pycharm中新建一个文档,②输入map() , ctrl +左键点击map, 可显示buildings(内置模块),可以看到map() 是一个类,而且首字母不是习惯上的大写。③内置模块中有很多这样的类,如还有常用的 int(),list(),等。只是map()类中没有普通方法可用,而项int(),list()这样的类有很多普通方法可用。
2、写法:map(func, *iterables), 返回一个map对象。①从map类的构造方法中知道它的参数 func (是一个方法名),和可迭代对象。②大概意思是,通过 func方法,对一个或多个可迭代对象iterables进行计算,生成一个迭代器。直到最短的迭代器用完。虽然map是类,但都称之为函数,有因为它将函数(func)作为参数,故又称为高阶函数。
2.仅有一个可迭代的参数的用法举例:
1、在使用map前,必须要定义一个函数,或使用内置的函数。例如:下例中的func_test 方法。目的是如果参数是整形数字时,将数字扩大10倍,否则返回原变量;
2、假如有一个列表 list_1 = ['Jack',2,3,4,'Tom'],想要对列表内部的整形数字都扩大10倍,就可用利用map函数,如:test=map(func_test, list_1)但是:因为map返回的是一个迭代器,所以直接打印并不能输出结果。
3、可用迭代器的next() 方法获取,或直接转换为原list_1的类型:如:next(test),单个获取;或:list(test) , 转换为列表。
3.有两个或多个可迭代对象的用法举例:
1、当有两个可迭代的参数时,会将两个参数的元素一一对应,按参数函数的功能生成可迭代对象;例如下图,中将两个列表中的元素一一对应,获取想要的结果。
2、如果当两个可迭代对象的元素不相等时,返回的迭代器以长度最短的那个参数为准:下图中,a 列表有3个元素,b列表有7个元素,生成的新列表就以 a为准,只能生成3个元素。
3、当可迭代的对象参数超过两个时,仍然是元素一一对应,生成新的对象。例如,下例中随机生成多组三维坐标。