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

Posted pythongood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么[]比list()更快?相关的知识,希望对你有一定的参考价值。

我最近比较了[]和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基本数据类型

 

以上是关于为什么[]比list()更快?的主要内容,如果未能解决你的问题,请参考以下文章

为啥从 std::vector 中随机删除比 std::list 快?

为啥这个循环比创建字典的字典理解更快?

Reddit热议:为什么PyTorch比TensorFlow更快?

为啥插入排序比快速排序和冒泡排序更快?

为啥执行存储过程比脚本中的 SQL 查询更快?

为啥排毒自动化工具比 Appium 和其他工具更快?