首页 > 解决方案 > 包含用于 collections.Counter 的相关方法

问题描述

抱歉,如果这是网站上的重复(我四处搜索但找不到答案)。假设我有一个Person用 Python 实现的类,带有名称和年龄参数,比如Person('Bob', 25). 假设我创建了一个Person对象列表,我想知道每个实例有多少;例如,我可能有[Person('Bob', 25), Person('Sally', 40'), Person('Bob', 25), Person('Sarah', 30)]. 所以剩下的有两个实例Person('Bob', 25)和一个实例;如果要在此对象列表上运行 collections.Counter,它将正确返回。

我的问题是:collections.Counter 在数据结构中究竟寻找什么以使计数正确?我有一个更复杂(但可散列)的类,并且 collections.Counter 没有正确计算元素的数量。我确定这是因为定义中缺少一些方法,但我不确定它是什么。

标签: pythonpython-3.xclasscounter

解决方案


如果a == b那时hash(a) == hash(b)

你需要实现__hash __()__eq __()


推荐阅读