py2 和 py3 使用map时的差别

Posted 杨鑫newlfe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了py2 和 py3 使用map时的差别相关的知识,希望对你有一定的参考价值。

Python2中map结果返回的是List,一个列表,例如下图:

 

Python3中map结果返回是一个对象,例如下图:

 

Python3中map源码如下:

可以看出里面是有一个迭代器的,我们使用的时候需要用迭代器返回每个结果,或者直接list(map)强制转化为python2中实现的效果。

class map(object):
    """
    map(func, *iterables) --> map object
    
    Make an iterator that computes the function using arguments from
    each of the iterables.  Stops when the shortest iterable is exhausted.
    """
    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, func, *iterables): # real signature unknown; restored from __doc__
        pass

    def __iter__(self, *args, **kwargs): # real signature unknown
        """ Implement iter(self). """
        pass

以上是关于py2 和 py3 使用map时的差别的主要内容,如果未能解决你的问题,请参考以下文章

使用 py2 解释器时的 PyCharm py3 语法问题

同时安装py2与py3时的pip使用问题

selenium自动化.........................................搭建环境

使用pyhdf时如何处理py2和py3中不同类型的np.array(list)?

py3与py2的问题以及encode问题

dir 全局名称未定义(py2 到 py3 迁移)