diff options
-rw-r--r-- | Doc/library/collections.rst | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 8e04475..f465c77 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -43,10 +43,8 @@ ABC Notes :class:`Iterable`, and :class:`Sized`, and in addition defines ``__getitem__()``, ``get()``, - ``__contains__()``, ``__len__()``, ``__eq__()``, ``__ne__()``, - ``__iter__()``, ``keys()``, - ``items()``, and ``values()`` + ``keys()``, ``items()``, and ``values()`` :class:`collections.MutableMapping` Derived from :class:`Mapping` :class:`collections.Sequence` Derived from :class:`Container`, :class:`Iterable`, and :class:`Sized`, @@ -83,9 +81,13 @@ The ABC supplies the remaining methods such as :meth:`__and__` and :meth:`isdisjoint` :: class ListBasedSet(collections.Set): - 'Alternate set implementation favoring space over speed' + ''' Alternate set implementation favoring space over speed + and not requiring the set elements to be hashable. ''' def __init__(self, iterable): - self.elements = list(set(iterable)) + self.elements = lst = [] + for value in iterable: + if value not in lst: + lst.append(value) def __iter__(self): return iter(self.elements) def __contains__(self, value): |