本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:幽默盒子,一个专注于搞笑,分享快乐的公众号

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-07(4)

2020-08(27)

set去重原理*****

发布于2021-01-29 10:58     阅读(588)     评论(0)     点赞(26)     收藏(1)



set在去重过程中,先比较列表元素的哈希值是否相等,如果相等,再次比价元素的值是否相等.

# 如果姓名和性别相同,则被确定为同一个人,进行去重
class Staff:

    def __init__(self, name, age, sex, partment):
        self.name = name
        self.age = age
        self.sex = sex
        self.partment = partment

    def __hash__(self):  # 自己定义hash的返回内容,set时使用自己的hash方法.如果不自己定义hash,会使用object中的hash.
        return hash('%s%s' % (self.name, self.sex))

    def __eq__(self, other):  # 当使用 '==' 方法时,会调用此方法
        if self.name == other.name and self.sex == other.sex:
            return True


staff_list = []
for s in range(300):
    staff_list.append(Staff('2go', s, '男', 'boss'))
for s in range(200):
    staff_list.append(Staff('3yadanzi', s, '女', 'boss'))
for s in range(500):
    staff_list.append(Staff('daliu', s, '男', 'boss'))

# print(staff_list)
staff_set = set(staff_list)
for i in staff_set:
    print(i.__dict__)





所属网站分类: 技术文章 > 博客

作者:小鬼来了

链接:https://www.pythonheidong.com/blog/article/804082/4a002cbabce3fb21135d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)