Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么使用哈希而不是测试真正的相等性?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我最近研究了Python的字典(我相信它们在其他语言中被称为关联数组),并对其键的一些限制感到困惑。你知道吗</p> <p>首先,dict键必须是不可变的。当我查看它背后的逻辑时,答案是字典就像哈希表一样查找键的值,因此不可变键(如果它们是可哈希的)可能会更改它们的哈希值,从而在检索值时产生问题。你知道吗</p> <p>我很清楚为什么会这样,但我还是有点搞不懂使用哈希表的意义。如果您只是不散列键并测试真正的相等性(假设相同构造的对象比较相等),那么您可以通过使用两个列表来复制字典的大部分功能,而不受此限制。你知道吗</p> <p>所以,我想这是我真正的问题-使用哈希值而不是相等值背后的原理是什么?你知道吗</p> <p>如果非要我猜的话,很可能只是因为比较整数的速度非常快而且优化了,而比较其他类的实例可能不是。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>通过使用hastables,您可以实现<code>O(1)</code>检索数据,而与每个独立值进行相等比较时,将采用<code>O(n)</code>(在顺序搜索中)或<code>O(log(n))</code>(在二进制搜索中)。你知道吗</p> <p>还请注意,<code>O(1)</code>是摊销时间,因为如果有多个值散列到同一个键,则需要在这些值之间进行顺序搜索。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将Python中的列表复制到给定的目标中?
6 回答
如何将python中的列表插入SQL表
5 回答
如何将python中的列表转换为numpy数组以放入十位
9 回答
如何将python中的列表输入javascript?
2 回答
如何将python中的列表返回给dag?
2 回答
如何将Python中的列表项重新排列成成对的元组/列表?
7 回答
如何将Python中的初始化对象序列化为XML?
9 回答
如何将python中的十进制字符串转换为数字?
2 回答
如何将Python中的原始输入文本转换为Tkinter中的标签?
3 回答
如何将python中的反斜杠命令转换为在Linux上运行
6 回答
如何将python中的命令行参数转换为字典?
7 回答
如何将python中的图像值传递到kivy中的kv文件?
2 回答
如何将Python中的图像数组(枕头对象)上传到Google云
9 回答
如何将Python中的图像编码为Base64?
9 回答
如何将python中的图像调整为灰度低分辨率,如MNIST时尚数据?
2 回答
如何将python中的多个html输出保存到单个文件(或多个)中?
1 回答
如何将Python中的多个ifelse语句重构为一个函数?
1 回答
如何将Python中的多处理与Django结合使用,从xml文件创建数千个模型实例?
5 回答
如何将python中的多级API响应转换为dataframe
4 回答
如何将python中的多线程编程模型转换为异步/等待模型?
6 回答