利用set()方法實現對象去重,重寫__hash__方法和__eq__方法告訴程序什么樣的對象是同一個對象
# 寫一個類 擁有100個對象 # 擁有三個屬性 name age sex # 如果兩個對象的name 和 sex 完全相同 # 我們就認為這是一個對象 # 忽略age屬性 做這100個對象的去重工作 class Person(): def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def __hash__(self): return hash(self.name+self.sex) def __eq__(self, other): if self.name == other.name and self.sex == other.sex: return True else: return False if __name__ == '__main__': list = [] for i in range(1,99): list.append(Person('wangxiaojiang'+str(i),str(i),'female')) list.append(Person('wangxiaojiang'+str(100),99,'female')) list.append(Person('wangxiaojiang'+str(100),100,'female')) list1 = set(list) print(len(list1))
程序輸出99,對象去重成功