为什么list()比[]慢3倍?

时间:2016-04-19 08:35:17

标签: python ipython

我刚检查了list()和[]之间的速度差异,并且惊讶地发现列表()比列表创建的[]慢3倍。我在ipython中用%timeit magic测试了这个。

In [1]: %timeit a=list()
10000000 loops, best of 3: 67.5 ns per loop
In [2]: %timeit b=[]
10000000 loops, best of 3: 21.9 ns per loop

然后我想也许在我们实际放入一个元素之前不会发生一些事情,所以我测试了以下内容。

In [3]: %timeit list().append(1)
10000000 loops, best of 3: 143 ns per loop

In [4]: %timeit [].append(1)
10000000 loops, best of 3: 88.7 ns per loop

现在关系改变了,所以我只测试了追加。

In[5]: a=list()
In[6]: b=[]
In [7]: %timeit a.append(1)
10000000 loops, best of 3: 49.8 ns per loop
In [8]: %timeit b.append(1)
10000000 loops, best of 3: 54.2 ns per loop

这是什么样的巫术?为什么列表和附件不等同?

0 个答案:

没有答案