]> granicus.if.org Git - python/commitdiff
Smalls improvement to example in the docs for collections ABCs.
authorRaymond Hettinger <python@rcn.com>
Fri, 8 Feb 2008 23:46:23 +0000 (23:46 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 8 Feb 2008 23:46:23 +0000 (23:46 +0000)
Doc/library/collections.rst

index 8e04475a4e9556a2a1c54d13f292df6002f8eac0..f465c7742bc4d3b0a2fd73049e650de0990fa881 100644 (file)
@@ -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):