为什么dict文字语法优于dict构造函数?

时间:2014-10-10 23:09:31

标签: python dictionary object-literal

为什么Python 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

构造函数变慢的原因是什么?在什么情况下,如果有的话,会更快吗?

1 个答案:

答案 0 :(得分:31)

构造函数较慢,因为它通过调用dict()函数创建对象,而编译器将dict文字转换为BUILD_MAP字节码,从而保存函数调用。