转载来源: http://blog.csdn.net/ljs109/article/details/45743317
前两天突然用到了python3的map,reduce函数,按照之前python2的方式使用,结果发现结果并不是自己想要的,查询了资料之后才发现原来map,reduce和filter三个函数在python3和python2中发生了较大的差异。
首先,在类型上,python3中三者是class,返回结果变成了可迭代的对象,在交互式环境下可以看到:
而在python2中,三者是内置函数,即<build-in function>。
在python3中,得到map(或者filter,reduce)的结果,可以通过如下迭代方式:
或者直接将结果变为list,如下:
最后需要说明的是reduce函数在python3中已经不属于build-in了,而是在functools模块下,如需使用,需要从functools模块中引入。