Python列表类__contains__方法功能(Python List Class __cont

2019-07-29 01:01发布

是否__contains__列表类的方法来检查的对象本身是否是列表的元素,或者它检查列表中是否包含一个元素相当于给定的参数?

你能不能给我一个例子来证明?

Answer 1:

>>> a = [[]]
>>> b = []
>>> b in a
True
>>> b is a[0]
False

这证明,它是一个值检查(通过至少默认值),而不是一个身份检查。 但请记住,一个类可以根据需要覆盖__contains__()使它的身份检查。 但同样,在默认情况下,没有。



Answer 2:

这取决于它是如何做的检查类。 对于内建的list它使用==操作符; 否则,你不能如使用'something' in somelist安全。

更具体地讲,它检查项目是等于在列表中的项目-所以在内部它是最有可能的一个hash(a) == hash(b)进行比较; 如果散列相等的对象本身很可能比较了。



文章来源: Python List Class __contains__ Method Functionality