为什么[]比list()更快?

作者: python之禅 | 来源:发表于2019-06-30 07:57 被阅读305次

    我最近比较了[]和list()的处理速度,并且惊讶地发现[]运行速度比list()快三倍以上。我跑了相同的测试与{}和dict(),结果几乎相同:[]和{}两个花了大约0.128sec /百万次,而list()和dict()大约花费每个0.428sec /万次。

    后来我查了查原因,得到的结论如下:

    list()需要全局查找和函数调用,但[]编译为单个指令。

    Python 2.7.3

    >>> import dis

    >>> print dis.dis(lambda: list())

      1          0 LOAD_GLOBAL              0 (list)

                  3 CALL_FUNCTION            0

                  6 RETURN_VALUE       

    None

    >>> print dis.dis(lambda: [])

      1          0 BUILD_LIST              0

                  3 RETURN_VALUE       

    None

    本文转载自python黑洞网www.pythonheidong.com

    相关文章

      网友评论

        本文标题:为什么[]比list()更快?

        本文链接:https://www.haomeiwen.com/subject/ppevcctx.html