]> granicus.if.org Git - python/commitdiff
Document how to change OrderedDict update order from first to last.
authorRaymond Hettinger <python@rcn.com>
Sat, 31 Jul 2010 10:16:57 +0000 (10:16 +0000)
committerRaymond Hettinger <python@rcn.com>
Sat, 31 Jul 2010 10:16:57 +0000 (10:16 +0000)
Doc/library/collections.rst

index 29504e084e3ec11e6b530fbe2addf2919873cfa0..d2aa0ccaf8f864b9e46ba80066fad4c35297deb0 100644 (file)
@@ -911,6 +911,18 @@ The new sorted dictionaries maintain their sort order when entries
 are deleted.  But when new keys are added, the keys are appended
 to the end and the sort is not maintained.
 
+It is also straight-forward to create an ordered dictionary variant
+that the remembers the order the keys were *last* inserted.
+If a new entry overwrites an existing entry, the
+original insertion position is changed and moved to the end::
+
+    class LastUpdatedOrderedDict(OrderedDict):
+        'Store items is the order the keys were last added'
+        def __setitem__(self, key, value):
+            if key in self:
+                del self[key]
+            OrderedDict.__setitem__(self, key, value)
+
 
 :class:`UserDict` objects
 -------------------------