2024-03-29 10:38:07 发布
网友
>>> timeit.timeit('test.append("test")', setup='test = []') 0.09363977164165221 >>> timeit.timeit('test[0] = ("test")', setup='test = {}') 0.04957961010914147
我甚至用一个循环再次尝试,同样的事情:
为什么列表慢了?在
首先,list.append和{}都是O(1)平均情况。当然,它们会有不同的系数,但实际上并没有任何全面的理由说其中一个会更快。系数也可能根据实现细节而改变。在
list.append
其次,更公平的比较是去掉属性解析开销:
>>> timeit.timeit('test[0] = ("test")', setup='test = {}') 0.0813908576965332 >>> timeit.timeit('test_append("test")', setup='test = []; test_append = test.append') 0.06907820701599121
在实例上查找方法名是相对昂贵的,当您看到一个非常便宜的操作时,例如append。在
append
我还看到,一旦里面有一些数据,列表的速度会一直快一点。这个例子是python 3.5.2:
首先,}都是O(1)平均情况。当然,它们会有不同的系数,但实际上并没有任何全面的理由说其中一个会更快。系数也可能根据实现细节而改变。在
list.append
和{其次,更公平的比较是去掉属性解析开销:
在实例上查找方法名是相对昂贵的,当您看到一个非常便宜的操作时,例如
append
。在我还看到,一旦里面有一些数据,列表的速度会一直快一点。这个例子是python 3.5.2:
^{pr2}$相关问题 更多 >
编程相关推荐