就性能而言,這兩個差異有多大?Python中的列表或字典更快嗎?
tmp = []
tmp.append(True)
print tmp[0]
而且
tmp = {}
tmp[0] = True
print tmp[0]
就性能而言,這兩個差異有多大?Python中的列表或字典更快嗎?
tmp = []
tmp.append(True)
print tmp[0]
而且
tmp = {}
tmp[0] = True
print tmp[0]
標準庫的timeit
模塊的設計只是爲了回答這些問題!忘記print
(這將有噴涌的東西到終端的討厭的副作用;-)和比較:
$ python -mtimeit 'tmp=[]; tmp.append(True); x=tmp[0]'
1000000 loops, best of 3: 0.716 usec per loop
$ python -mtimeit 'tmp={}; tmp[0]=True; x=tmp[0]'
1000000 loops, best of 3: 0.515 usec per loop
所以,字典是贏家 - 0.2微秒...... - - !)
不錯。那麼我想我什麼也不擔心。謝謝。 – Scott 2009-06-03 03:25:45
不錯。字典比列表快。謝謝;) – 2017-11-24 06:06:12
它們在我的測試中是公平的
如果你能提供更多關於你在測試中做了什麼的信息,那會很棒。 – 2017-01-04 05:51:24
不僅微通常是毫無意義的,我覺得它特別困難和神祕。實際上讓你的代碼同時變得更慢更復雜是非常容易的。查看this Stack Overflow question的例子,其中最簡單,最清晰和最短的Python解決方案也是最快的。
正如其他人在實際測試中所顯示的那樣,兩種選擇之間的速度差異非常小。更小的是語義差異。列表和字典不僅僅是同一概念的兩種實現,而是針對不同的用途。選擇一個更適合你的用途。
這個比較沒有太大的意義......也許你可以詳細說明你真正的問題?數據結構的用法是什麼? – besen 2009-06-03 03:24:00