【问题标题】:python dictionaries search complexity compared to java hashmap/hashtable [duplicate]与java hashmap / hashtable相比,python字典搜索复杂度[重复]
【发布时间】:2012-12-22 21:26:01
【问题描述】:

可能重复:
How are Python’s Built In Dictionaries Implemented

我对python相当陌生,并且有java背景。我想知道 python 中的字典是否具有与 java 中的哈希映射相同的搜索复杂性。示例:在java中搜索哈希表/映射中的键是一个常数时间操作,我想知道在python中搜索字典中的键是否也是一个常数时间操作。我已经阅读了几页关于映射的python文档,但它似乎没有表明python中字典键的任何散列,所以我想知道是否:

  1. 在 python 中搜索字典中的键是恒定时间操作。
  2. 如果是这样,他们如何在没有散列的情况下实现这种恒定时间搜索?

【问题讨论】:

  • 是什么让你如此确定dict 不是基于哈希表?

标签: java python hash dictionary hashmap


【解决方案1】:

Python 字典的搜索复杂度为 O(1)。

请参阅Time complexity wiki page

Python 字典被实现为哈希表,并且键被哈希;您可以通过实现__hash__ method 来影响散列。

【讨论】:

  • 而 OPs 第 2 点将是多余的
  • 你知道他们是通过散列字典中的键还是通过其他方法来实现的?我非常感谢您就此事提供一些意见。
猜你喜欢
  • 2015-04-21
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 2016-04-22
  • 2014-12-14
  • 1970-01-01
相关资源
最近更新 更多