假设我有一百个自然数,一百个自然数和一百个自然数的字典(假设键和值都是自然数)的列表。我想访问这些数据类型中的元素。哪种方法可以更高效和更快速地访问它?我知道我可以使用像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. 哪种方法更好和更快,包括或不PHP
- 20. ADO.NET性能:哪种方法会更快,更合理?
- 21. 哪种方法更优化?
- 22. 哪种方法更准确?
- 23. CSS - 哪种方法更好?
- 24. 哪种方法可以比其他方法更快地调用native API?
- 25. 哪种方式更快处理?
- 26. 哪个访问方法更快的Sql server
- 27. acl实现 - 哪种方式更高效:拒绝所有的访问?
- 28. 访问父元素有效
- 29. 快速像素访问opencv
- 30. 哪种方法更准确地获得焦点文档中的元素?
使用'timeit'学习并进行性能测试。更短的执行时间意味着更快(如果你不知道,你会发现哪个更好) –
列表与字典的用例应该很明显。使用一个列表。如果您必须快速查找基于某个键的特定项目,请使用字典。 *测试所有假设*。 –
@thefourtheye ???索引一个'list'是O(1)像'dict',但总是*更快,因为不需要计算哈希值。也许你的意思是一个链接列表,它被实现为'collections.deque' ... – Bakuriu