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