python 实现对象去重


利用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,对象去重成功


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM