Python中dict()和{}的效率比较

友情提醒:本文最后更新于 2150 天前,文中所描述的信息可能已发生改变,请谨慎使用。

    今天突然想到Python中经常用的两种创建字典的方式dict()和{},那么这两种方式之中哪个效率会更高呢?所以查找了一些资料并自己试验了一下,下面来看看试验的结果

我通过应用timeit来进行试验,看看是否有性能差异。

1. 首先测试一下dict()

>>> python2.7 -m timeit -n 1000000 -r 5 -v 'dict()'

raw times: 0.0988 0.0989 0.0965 0.0967 0.0967
1000000 loops, best of 5: 0.0965 usec per loop

2. 接下来是{}

>>> python2.7 -m timeit -n 1000000 -r 5 -v '{}'

raw times: 0.0318 0.0325 0.0315 0.0314 0.0314
1000000 loops, best of 5: 0.0314 usec per loop

通过结果我们可以看到他们之间确实存在性能差异,{}的性能大概是dict()的三倍左右,这是创建一个空字典的时候,如果字典里面含有键值对呢?我们再来试一下

3. 首先还是dict()

>>> python2.7 -m timeit -n 1000000 -r 5 -v 'dict(a="A", b="B", c="C")'

raw times: 0.301 0.297 0.297 0.3 0.297
1000000 loops, best of 5: 0.297 usec per loop

4. {}

>>> python2.7 -m timeit -n 1000000 -r 5 -v '{"a": "A", "b": "B", "c": "C"}'

raw times: 0.13 0.134 0.128 0.129 0.128
1000000 loops, best of 5: 0.128 usec per loop

当创建的字典中还有键值对时,貌似两者的效率比之前差异小了。

同理我们是不是也可以比较一下list()和[]的效率?好了,再深入的话,我们暂时先不研究了,有兴趣的话可以参阅下面的链接

 

相关链接:

https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2/

上一篇:理解Python中的if __name__ == '__main__':

下一篇:Python代码性能优化技巧