当前位置:  开发笔记 > 编程语言 > 正文

函数集用于检查两个对象是否不同?

如何解决《函数集用于检查两个对象是否不同?》经验,为你挑选了1个好方法。

简单代码:

>>> set([2,2,1,2,2,2,3,3,5,1])
set([1, 2, 3, 5])

好的,在结果集中没有重复.如果列表中的对象不是int而是由我定义的,该怎么办?它检查了什么方法来理解它们是否不同?我用一些对象实现了__eq__和__cmp__但是set似乎没有使用它们:

有谁知道如何解决这个问题?



1> Adam Rosenfi..:

根据设置文档,元素必须是可清除的.

如果一个对象具有一个在其生命周期内永远不会改变的哈希值(它需要一个__hash__()方法),并且可以与其他对象(它需要一个__eq__()或多个__cmp__()方法)进行比较,则该对象是可清除的.比较相等的可哈希对象必须具有相同的哈希值.

编辑:感谢Roberto添加了正确的Hashable定义

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有