【python之路49】使用set底层原理实现对象去重
#一个员工类,创建了300个对象,假设当name gender相同时则认为是同一个人,请给这300个对象去重
#一个员工类,创建了300个对象,假设当name gender相同时则认为是同一个人,请给这300个对象去重 class Employee: def __init__(self, name, age ,gender): self.name = name self.age = age self.gender = gender def __hash__(self): return hash("%s%s" % (self.name, self.gender)) def __eq__(self, other): if self.name == other.name and self.gender == other.gender: return True return False li =[] for i in range(100): li.append(Employee(‘sunxiao‘, i, "male")) for i in range(100): li.append(Employee(‘ruhua‘, i, "female")) for i in range(100): li.append(Employee(‘taibai‘, i, "male")) #set底层实现逻辑,实际去调用转化对象的类的__hash__方法,如果不同则写入,如果是相同则通过 #__eq__方法判断是否相同,如果相同则不再写入,如果不同则写入 result = set(li) for i in result: print(i.__dict__) print(result)
相关推荐
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
坚持是一种品质 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20
weiiron 2020-11-16