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,對象去重成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章