diff options
author | Raymond Hettinger <python@rcn.com> | 2009-11-10 18:21:06 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2009-11-10 18:21:06 (GMT) |
commit | c529c2f4dcf5bcf76d20a4319d5be57704a14041 (patch) | |
tree | 05b46b45e5219cf4380f50e134d5f56714a5b3c8 /Doc/library/collections.rst | |
parent | 1e9d54c15af1087f6af4beeb37cb2488c8a66270 (diff) | |
download | cpython-c529c2f4dcf5bcf76d20a4319d5be57704a14041.zip cpython-c529c2f4dcf5bcf76d20a4319d5be57704a14041.tar.gz cpython-c529c2f4dcf5bcf76d20a4319d5be57704a14041.tar.bz2 |
Show example of how to make a sorted dictionary
Diffstat (limited to 'Doc/library/collections.rst')
-rw-r--r-- | Doc/library/collections.rst | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index cd38956..7770b89 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -862,6 +862,28 @@ semantics pass-in keyword arguments using a regular unordered dictionary. `Equivalent OrderedDict recipe <http://code.activestate.com/recipes/576693/>`_ 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. + :class:`UserDict` objects ------------------------- |