Python 2: различное значение ключевого слова «in» для множеств и списков

Рассмотрим этот фрагмент:

class SomeClass(object):

    def __init__(self, someattribute="somevalue"):
        self.someattribute = someattribute

    def __eq__(self, other):
        return self.someattribute == other.someattribute

    def __ne__(self, other):
        return not self.__eq__(other)

list_of_objects = [SomeClass()]
print(SomeClass() in list_of_objects)

set_of_objects = set([SomeClass()])
print(SomeClass() in set_of_objects)

который оценивает:

True
False

Может кто-нибудь объяснить, почему ключевое слово «in» имеет другое значение для наборов и списков? Я ожидал бы, что оба вернут True, особенно когда у тестируемого типа определены методы равенства.

Ответы на вопрос(3)

Ваш ответ на вопрос