假設我有一百個自然數,一百個自然數和一百個自然數的字典(假設鍵和值都是自然數)的列表。我想訪問這些數據類型中的元素。哪種方法可以更高效和更快速地訪問它?我知道我可以使用像timeit或cprofile等一些性能工具來檢查性能,但我怎麼知道選擇哪種數據類型以及何時?哪種方法更有效,更快速地訪問元素?
回答
在案例集中會有任何區別,或者它的查找是否與列表相同? – Ameet
這不是一個公平的比較,因爲''set''(* sets *)沒有像列表或字典那樣的查找操作。請參閱:http://stackoverflow.com/questions/7351459/time-complexity-of-python-set-operations和https://wiki.python.org/moin/TimeComplexity –
@JamesMills你的意思是「查找操作「,在這裏?在'dict'和'set'中的成員檢查是'O(1)',而在'list'中是'O(n)',在'dict'和'list'中鍵/索引的訪問是'O(1) (請參閱https://wiki.python.org/moin/TimeComplexity)。 – jonrsharpe
- 1. 哪種方法更快?
- 2. 哪種方法更好更快 - Symfony2,Doctrine2
- 3. 哪種說法更有效?
- 4. 哪種訪問文件更快的方法?
- 5. 哪種功能更快更高效?
- 6. 哪種方法可以最有效地訪問控件的值?
- 7. 有沒有使用vb.net更新訪問表的快速方法?
- 8. 哪種方式更快?
- 9. 更快速地更新圖像像素
- 10. C++ - 哪種方法來搜索容器中的元素更有效
- 11. Octave:哪種方法更高效
- 12. 更快速地創建測試方法
- 13. 快速訪問setter方法
- 14. 哪種方式更有效率?
- 15. 哪種功能更有效?
- 16. 哪種情況更有效?
- 17. 哪種方法更快地在UIWebView中加載頁面
- 18. 加快/更有效地SQL
- 19. ADO.NET性能:哪種方法會更快,更合理?
- 20. 哪種方法更好和更快,包括或不PHP
- 21. 哪種方法更優化?
- 22. 哪種方法更準確?
- 23. CSS - 哪種方法更好?
- 24. 哪種方法可以比其他方法更快地調用native API?
- 25. 哪種方式更快處理?
- 26. 哪個訪問方法更快的Sql server
- 27. acl實現 - 哪種方式更高效:拒絕所有的訪問?
- 28. 訪問父元素有效
- 29. 哪種方法更準確地獲得焦點文檔中的元素?
- 30. 訪問查詢不夠快速更新
使用'timeit'學習並進行性能測試。更短的執行時間意味着更快(如果你不知道,你會發現哪個更好) –
列表與字典的用例應該很明顯。使用一個列表。如果您必須快速查找基於某個鍵的特定項目,請使用字典。 *測試所有假設*。 –
@thefourtheye ???索引一個'list'是O(1)像'dict',但總是*更快,因爲不需要計算哈希值。也許你的意思是一個鏈接列表,它被實現爲'collections.deque' ... – Bakuriu