看了一個叫 doug hellmann 的哥們兒寫的博文 html
在python2.7中 dict() 函數方式生成字典比直接{}要慢6倍。 python
實驗代碼 windows
$ python2.7 -m timeit -n 1000000 -r 5 -v 'dict()' raw times: 0.24 0.24 0.24 0.239 0.24 1000000 loops, best of 5: 0.239 usec per loop $ python2.7 -m timeit -n 1000000 -r 5 -v '{}' raw times: 0.0417 0.0413 0.0407 0.0411 0.042 1000000 loops, best of 5: 0.0407 usec per loop
我在本身機器上試了下,因爲是windows 要把單引號換成雙引號 ,結果同樣。 python2.7
C:\Users\xxxx>python -m timeit -n 1000000 -r 5 -v "dict()" 函數
raw times: 0.195 0.194 0.193 0.191 0.1911000000 loops, best of 5: 0.0455 usec per loop oop
緣由大概也能猜到,函數要進出棧操做,而{} 有直接對應的指令: spa
dict()
$ python2.7 -m dis func.py 1 0 LOAD_NAME 0 (dict) 3 CALL_FUNCTION 0 6 POP_TOP 7 LOAD_CONST 0 (None) 10 RETURN_VALUE
而 code
{} orm
python2.7 -m dis literal.py 1 0 BUILD_MAP 0 3 POP_TOP 4 LOAD_CONST 0 (None) 7 RETURN_VALUE
這下就瞭然了。 htm
原文: