与java hashmap / hashtable相比,python字典搜索复杂度[重复]
Posted
技术标签:
【中文标题】与java hashmap / hashtable相比,python字典搜索复杂度[重复]【英文标题】:python dictionaries search complexity compared to java hashmap/hashtable [duplicate] 【发布时间】:2012-12-22 21:26:01 【问题描述】:可能重复:How are Python’s Built In Dictionaries Implemented
我对python相当陌生,并且有java背景。我想知道 python 中的字典是否具有与 java 中的哈希映射相同的搜索复杂性。示例:在java中搜索哈希表/映射中的键是一个常数时间操作,我想知道在python中搜索字典中的键是否也是一个常数时间操作。我已经阅读了几页关于映射的python文档,但它似乎没有表明python中字典键的任何散列,所以我想知道是否:
-
在 python 中搜索字典中的键是恒定时间操作。
如果是这样,他们如何在没有散列的情况下实现这种恒定时间搜索?
【问题讨论】:
是什么让你如此确定dict
不是基于哈希表?
【参考方案1】:
Python 字典的搜索复杂度为 O(1)。
请参阅Time complexity wiki page。
Python 字典被实现为哈希表,并且键被哈希;您可以通过实现__hash__
method 来影响散列。
【讨论】:
而 OPs 第 2 点将是多余的 你知道他们是通过散列字典中的键还是通过其他方法来实现的?我非常感谢您就此事提供一些意见。以上是关于与java hashmap / hashtable相比,python字典搜索复杂度[重复]的主要内容,如果未能解决你的问题,请参考以下文章
最详细Java---HashMap 与 Hashtable 的区别?