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

Fab*_*abz 25 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
Run Code Online (Sandbox Code Playgroud)

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

Ign*_*ams 33

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