From c1b6a4a1fd4de335426ffa3a8df2300aefed7a80 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 8 Feb 2008 23:46:23 +0000 Subject: Smalls improvement to example in the docs for collections ABCs. --- Doc/library/collections.rst | 12 +++++++----- 1 file 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): -- cgit v0.12