程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 中 list 和 deque 性能對比

編輯:Python

list 與 deque 的性能對比如下,deque 比 list 快了將近一倍。

In [1]: from collections import deque
In [2]: s = list(range(1000))
In [3]: d = deque(s)
In [4]: s_append, s_pop = s.append, s.pop
In [5]: d_append, d_pop = d.append, d.pop
In [6]: %timeit s_pop(); s_append(None)
10000000 loops, best of 3: 115 ns per loop
In [7]: %timeit d_pop(); d_append(None)
10000000 loops, best of 3: 70.5 ns per loop
  • deque 的 appendleft() 和 popleft() 的時間復雜度為 O(1)
  • list 的 insert(0, value) 和 pop() 的時間復雜度為 O(n)

列表追加性能好壞不定,因為它使用了realloc()。

因此,往往在簡單代碼中列表的性能不算太差(因為 realloc 內存分配機制不需要移動數據),而在實際應用代碼中計時非常慢(因為 realloc 機制會移動所有數據)。

相比之下,deque的附加性能是一致的,因為它從不重新分配內存和移動數據。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved