Python中文
首页
教程
问答
标签
搜索
登录
注册
当你调用“if key in dict”时会发生什么`
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个类(我们称之为<code>myClass</code>),它同时实现了<code>__hash__</code>和{<cd3>}。我还有一个<code>dict</code>,它将<code>myClass</code>对象映射到某个值,计算需要一些时间。在</p> <p>在我的程序过程中,许多(以百万计)<code>myClass</code>对象被实例化。这就是为什么我使用<code>dict</code>来跟踪这些值。在</p> <p>但是,有时新的<code>myClass</code>对象可能与旧对象等价(由<code>__eq__</code>方法定义)。因此,与其再次计算该对象的值,不如在<code>dict</code>中查找旧的<code>myClass</code>对象的值。为了完成这个任务,我做了<code>if myNewMyClassObj in dict</code>。在</p> <p>我的问题是:</p> <p>当我使用那个<code>in</code>子句时,什么叫<code>__hash__</code>或{<cd3>}?使用<code>dict</code>的关键在于它是O(1)查找时间。所以必须调用<code>__hash__</code>。但是如果<code>__hash__</code>和{<cd3>}不是等价的方法呢?在这种情况下,我会得到<code>if myNewMyClassObj in dict</code>的假阳性吗?在</p> <p>后续问题:</p> <p>我想最小化我的<code>dict</code>中的条目数,因此理想情况下,我希望在<code>dict</code>中只保留一组等价的<code>myClass</code>对象中的一个。因此,在计算<code>__eq__</code>时似乎需要调用<code>__eq__</code>,这将把<code>dict</code>的O(1)查找时间污损为O(n)查找时间</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>定义对象放入的bucket,只有当对象在同一个bucket中时才会调用。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
10 回答
当用户登录到站点时,如何显示不同的导航栏
3 回答
当用户登录时,在Flask中向用户显示处理结果
2 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
10 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
8 回答
当用户的付款逾期2天时,从Django模型检索数据
8 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
10 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
7 回答
当用户确定打印数量时,使用Matplotlib打印动画
9 回答
当用户离开时是否可以删除整个网页?
5 回答
当用户给出一个单词时如何打印?
5 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
5 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
1 回答
当用户被更改时,消息不会来自web套接字
8 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
8 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
10 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
8 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
4 回答
当用户购买某个类别时,是否查找其他类别的销售?
6 回答
当用户转到上一页时,Django和芹菜插入操作
10 回答