python 实现对象去重

时间:2019-10-20
本文章向大家介绍python 实现对象去重,主要包括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,对象去重成功

原文地址:https://www.cnblogs.com/wojianxin/p/11707729.html