From: Raymond Hettinger Date: Tue, 10 Nov 2009 19:35:55 +0000 (+0000) Subject: Show example of how to make a sorted dictionary X-Git-Tag: v2.7a1~126 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=610326d48ac112524ede8182f695fdf8115a0c92;p=thirdparty%2FPython%2Fcpython.git Show example of how to make a sorted dictionary --- diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index c0d539f658a7..dc81c0ad1834 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -884,3 +884,25 @@ semantics pass-in keyword arguments using a regular unordered dictionary. `Equivalent OrderedDict recipe `_ that runs on Python 2.4 or later. + +Since an ordered dictionary remembers its insertion order, it can be used +in conjuction with sorting to make a sorted dictionary:: + + >>> # regular unsorted dictionary + >>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2} + + >>> # dictionary sorted by key + >>> OrderedDict(sorted(d.items(), key=lambda t: t[0])) + OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]) + + >>> # dictionary sorted by value + >>> OrderedDict(sorted(d.items(), key=lambda t: t[1])) + OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)]) + + >>> # dictionary sorted by length of the key string + >>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0]))) + OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)]) + +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.