python 实现对象去重

Posted 我坚信阳光灿烂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,对象去重成功

以上是关于python 实现对象去重的主要内容,如果未能解决你的问题,请参考以下文章

Python办公自动化——8行代码实现文件去重

用python实现嵌套列表去重

Python之集合函数

使用reduce的方法实现对象数组去重

python sorted() count() set(list)-去重

ES6 set和map数据结构对对象数组去重简单实现