如何使Python中的类与集合一起工作?
我有课如何使Python中的类与集合一起工作?,python,set,Python,Set,我有课 class Part: def __init__(self,name): self.name = name self.count = 0 def __hash__(self): return hash(self.name) def __lt__(self,other): return self.count < other.count def __eq__(self,other):
class Part:
def __init__(self,name):
self.name = name
self.count = 0
def __hash__(self):
return hash(self.name)
def __lt__(self,other):
return self.count < other.count
def __eq__(self,other):
return self.name == self.count
然后我对它进行迭代,将其写入文件
for part in uniqueParts:
f.write(part.name+": "+str(part.count)+'\n')
这是行不通的。它输出每个副本。因为uniqueParts是一个集合,所以我的类肯定出了问题,因为集合不能分辨出它们是重复的
现在,我可以用几种不同的方法解决我的特定问题(重新编写类,这样我就不需要它了(数据可能太简单了,不需要它自己的类),或者迭代并删除重复项,或者重新编写代码,这样在一开始就不会出现重复项),但我将来可能会再次遇到这个问题,我想知道我需要做些什么才能让集合与我自己编写的类一起工作
想法/帮助?这看起来不对:
def __eq__(self,other):
return self.name == self.count
也许你的意思是:
def __eq__(self,other):
return self.name == other.name
def __eq__(self,other):
return self.name == other.name