- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
我正在使用 python
类的 set()
和 __hash__
方法来防止在集合中添加相同的哈希对象。根据python data-model document , set()
将相同的散列对象视为相同的对象并且只添加一次。
但它的行为不同如下:
class MyClass(object):
def __hash__(self):
return 0
result = set()
result.add(MyClass())
result.add(MyClass())
print(len(result)) # len = 2
虽然在字符串值的情况下,它可以正常工作。
result.add('aida')
result.add('aida')
print(len(result)) # len = 1
我的问题是:为什么相同的散列对象在集合中不相同?
我有一个类,我想为这个类写一个__hash__()方法。我要编写的方法在某些情况下会返回对象的默认散列,而在其他一些情况下会返回其属性之一的散列。所以,作为一个简单的测试用例: class Foo:
我有一个类(class)叫 Transaction ,其中包含多个属性。如果这些属性中的任何一个匹配,那么我希望将这些事务视为重复事务,因此不想在集合中存储重复项。 class Transaction
假设我写了一个类,但没有为它定义一个__hash__。然后__hash__(self)默认为id(self)(self的内存地址),根据the documentation . 但是我没有在文档中看到这
我正在尝试为字符串创建自定义哈希函数。我想按权重按字符频率对字符串进行哈希处理。这样 hi 和 ih 将产生相同的散列。我可以覆盖 __hash__ 吗? 或者创建一个包含字符串并覆盖 __hash_
假设我有一些 Person 实体,我想知道其中一个是否在列表中: person in people? 我不关心“对象的 ID”是什么,只关心它们的属性是否相同。所以我把它放在我的基类中: # valu
在 Python 文档中,我们可以阅读有关 __hash__ 函数的内容: The only required property is that objects which compare equal
我在正确散列我的对象时遇到了问题。考虑以下代码: class Foo: def __init__(self, bar): self.keys = list(bar.keys()
有没有办法给js自定义哈希中的对象,就像重写一样 __hash__() 在 python 中,让我们定义如何将给定对象散列到字典中。 我的基本问题是:使用什么哈希函数将 js 对象放入关联数组中,我可
我刚刚在 Python3 中观察到 Set 的一个有趣行为,我想知道为什么。 给定类: class Tab: @staticmethod def set(size):
给定: class T: def __hash__(self): return 1234 t1 = T() t2 = T() my_set = { t1 } 我希望以下内容打印
编辑:正如@BrenBarn 指出的那样,原文没有意义。 给定一个字典列表(由 csv.DictReader 提供——它们都有 str 键和值)最好通过全部填充来删除重复项在一个集合中,但这不能直接完
我所做的显然不是人们想要做的事情,相反,我只是在测试为给定类实现 __hash__。 我想看看是否向字典添加一个虚假的“可散列”类,然后更改它的散列值会导致它无法访问它。 我的类(class)是这样的
这个问题在这里已经有了答案: add object into python's set collection and determine by object's attribute (1 个回答)
实现__hash__()的正确好方法是什么? 我说的是返回哈希码的函数,该哈希码随后用于将对象插入哈希表(也称为字典)中。 由于 __hash__() 返回一个整数并用于将对象“分箱”到哈希表中,我假
在 Python 中,我知道 __hash__ 为给定对象返回的值在该对象的生命周期内应该是相同的。但是,出于好奇,如果不是,会发生什么?这会造成什么样的破坏? class BadIdea(objec
我有一个名为 WeakBoundMethod 的类(codereview.se 上的 source)。我想要一些关于我应该如何实现的指南 __hash__() .此外,Python 3 自动提供了 _
我希望这可行(在 Python 3.6 中), class A: __hash__ = id A().__hash__() 但我明白了 TypeError: id() takes exactl
以下将起作用,但我宁愿不需要重复 __hash__在每个子类中。有没有办法告诉数据类继承哈希函数(即不将其设置为 None )? from dataclasses import dataclass @
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我正在尝试理解我目前正在处理的一段代码(它的 pacman)。 我在 Python 中有以下二维数组: self.data = [[initialValue for y in range(height
我是一名优秀的程序员,十分优秀!