与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字典搜索复杂度[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Hashtable与HashMap有啥区别?

HashMap与HashTable的区别

Java集合之HashMap与Hashtable的区别

最详细Java---HashMap 与 Hashtable 的区别?

最详细Java---HashMap 与 Hashtable 的区别?

最详细Java---HashMap 与 Hashtable 的区别?