21
为什么Python字典构造函数比使用文字语法慢?为什么dict文字语法首选dict构造函数?
我的同事热议之后,我做了一些比较,得到了以下数据:
python2.7 -m timeit "d = dict(x=1, y=2, z=3)"
1000000 loops, best of 3: 0.47 usec per loop
python2.7 -m timeit "d = {'x': 1, 'y': 2, 'z': 3}"
10000000 loops, best of 3: 0.162 usec per loop
什么是构造函数是比较慢的原因是什么?在什么情况下,如果有的话,会更快吗?
通常这与'dict'可能指向别的事实有关。所以解释者不能做任何真正的优化。使用'{}'语法,可以进行这些优化。 – 2014-10-10 23:10:56
即:'dict'总是一个真正的函数调用,而'{}'是在编译时处理的。 – Eevee 2014-10-10 23:11:48
[d = dict()“和”d = {}“]之间的差异可能重复(http://stackoverflow.com/questions/2745008/differences-between-d-dict-and-d) – 2014-10-11 00:08:02