From 5a34b7f50a822fbc1b1f9dfb429b96e3df92928b Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 31 Jul 2010 10:16:57 +0000 Subject: [PATCH] Document how to change OrderedDict update order from first to last. --- Doc/library/collections.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 29504e084e..d2aa0ccaf8 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -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 ------------------------- -- 2.40.0