利用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,对象去重成功
原文地址:https://www.cnblogs.com/wojianxin/p/11707729.html
时间: 2024-10-12 15:59:09