首页 > 其他 > 详细

23-5 面试题:1000个员工,我们认为名字和年龄相等,就为同一个人

时间:2020-04-05 17:23:40      阅读:77      评论:0      收藏:0      [点我收藏+]
需求:
  • 一个类
  • 对象的属性 : 姓名 性别 年龄 部门
  • 员工管理系统
  • 内部转岗 python开发 - go开发
  • 姓名 性别 年龄 新的部门
  • alex None 83 python
  • alex None 85 luffy
  • 1000个员工
  • 如果几个员工对象的姓名和性别相同,这是一个人
  • 请对这1000个员工做去重class Employee:
def __init__(self, name, age, sex, partment):
        self.name = name
        self.age = age
        self.sex = sex
        self.partment = partment

    def __hash__(self):
        return hash(%s%s % (self.name, self.sex))

    def __eq__(self, other):
        if self.name == other.name and self.sex == other.sex:
            return True


employ_lst = []   # 得到600个样本
for i in range(200):
    employ_lst.append(Employee(alex, i, male, python))   # 这样得到了 年龄不同,名字都为alex的对象们 放入空列表中待用
for i in range(200):
    employ_lst.append(Employee(wusir, i, male, python))   # 这样得到了 年龄不同名字都为wusir的对象们 放入空列表中待用
for i in range(200):
    employ_lst.append(Employee(taibai, i, male, python))


# print(employ_lst)
employ_set = set(employ_lst)   # set 去重
for person in employ_set:
    print(person.__dict__)    # 查看对象们

# 结果:

# {‘name‘: ‘alex‘, ‘age‘: 0, ‘sex‘: ‘male‘, ‘partment‘: ‘python‘}
# {‘name‘: ‘taibai‘, ‘age‘: 0, ‘sex‘: ‘male‘, ‘partment‘: ‘python‘}
# {‘name‘: ‘wusir‘, ‘age‘: 0, ‘sex‘: ‘male‘, ‘partment‘: ‘python‘}


 

23-5 面试题:1000个员工,我们认为名字和年龄相等,就为同一个人

原文:https://www.cnblogs.com/zhuangdd/p/12637870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!