From: Raymond Hettinger Date: Fri, 8 Feb 2008 23:46:23 +0000 (+0000) Subject: Smalls improvement to example in the docs for collections ABCs. X-Git-Tag: v3.0a3~85 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c1b6a4a1fd4de335426ffa3a8df2300aefed7a80;p=thirdparty%2FPython%2Fcpython.git Smalls improvement to example in the docs for collections ABCs. --- diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 8e04475a4e95..f465c7742bc4 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):