欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-15 14:45:14
我最近比较了[]和list()的处理速度,并且惊讶地发现[]运行速度比list()*倍以上。我跑了相同的测试与{}和dict(),结果几乎相同:[]和{}两个花了大约0.128sec /百万次,而list()和dict()大约花费每个0.428sec /万次。 后来我查了查原因,得到的结论如下: ......

我最近比较了[]和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