我並沒有從根本上理解爲什麼在字典中搜索關鍵字比遍歷字典關鍵字來查找匹配關鍵字更快。我想象一下當在python中搜索一個類似key in dict
的密鑰時,後臺代碼將遍歷鍵來查找匹配項。那麼爲什麼手動使用for i in dict: key == i
之類的東西會更慢呢?爲什麼關鍵字搜索比通過python字典進行迭代更快
1
A
回答
3
因爲python中的字典是使用散列表實現的。想象一下類似於關係數據庫中的索引,這使得關鍵的查找操作更快。
3
你想象得不對:搜索單個鍵使用散列函數,因此它是間接引用(兩步計算)到內存中所需的位置。將其視爲數組形式的參考
array[hash_function(key)]
相關問題
- 1. Python。迭代字典從某些關鍵
- 2. 迭代通過現有的鍵和更新字典python
- 3. 通過mongo的python字典進行遞歸迭代
- 4. 的Python 3.5迭代通過字典
- 5. 爲什麼字典比Python中的列表更快?
- 6. 迭代通過VB6字典
- 7. 對字典進行迭代
- 8. python通過搜索字典替換值
- 9. 通過詞典詞典進行迭代
- 10. 迭代通過字典集 - 蟒蛇 - 基本搜索
- 11. 在python中迭代字典值的最快方法是什麼?
- 12. EBAY API:findItemsAdvanced如何通過關鍵字和類別進行搜索?
- 13. 通過mysql查詢搜索關鍵字的搜索關鍵字來計算搜索關鍵字
- 14. 迭代通過字典子鍵/子值對 - Python
- 15. 迭代通過按鍵Python字典的排序順序
- 16. 在python中通過鍵迭代字典多個值
- 17. 快速搜索字典中的鍵
- 18. python迭代字典
- 19. 迭代python字典?
- 20. 通過數字範圍進行迭代以添加爲鍵
- 21. 如何迭代和搜索字典?
- 22. 使用匹配通配符鍵的字典進行迭代
- 23. 通過在Python中的字典元組迭代迭代
- 24. 爲什麼在LinkedHashMap中迭代通過桶比HashMap快?
- 25. scrapy HtmlXPathSelector通過搜索關鍵字
- 26. 通過硬盤搜索關鍵字
- 27. 搜索,通過使許多關鍵字
- 28. Java通過多個關鍵字搜索
- 29. Laravel搜索功能,通過關鍵字
- 30. 通過關鍵字搜索JSON與jQuery
「我想,尋找與在dict'後臺代碼像'鍵蟒蛇一個鍵時,將通過按鍵來迭代來尋找匹配」 - [你想象的錯(HTTPS:/ /en.wikipedia.org/wiki/Hash_table)。 – user2357112
[排序和搜索](https://www.amazon.com/dp/0201896850)。通過適當選擇算法和數據結構,您可以找到log(n)或更少的內容。 – jww
另請參閱[這裏](http://stackoverflow.com/questions/513882/python-list-vs-dict-for-look-up-table)和其他許多關於如何實現字典/集合查詢的問題性能。 – TigerhawkT3