summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-11-27 05:05:37 (GMT)
committerBenjamin Peterson <benjamin@python.org>2013-11-27 05:05:37 (GMT)
commit5143ce5a01438280a699c15aea1738fdfc9ceb45 (patch)
treee9002a9e807ee34b9afac062ea67b2e3d90009ab
parentd75803c1fcab18eca7859c212ca594137dd75e25 (diff)
parentb152e177ef62cd171d5ac7bc540c7722da375894 (diff)
downloadcpython-5143ce5a01438280a699c15aea1738fdfc9ceb45.zip
cpython-5143ce5a01438280a699c15aea1738fdfc9ceb45.tar.gz
cpython-5143ce5a01438280a699c15aea1738fdfc9ceb45.tar.bz2
merge 3.3 (#19805)
-rw-r--r--Doc/faq/programming.rst30
1 files changed, 3 insertions, 27 deletions
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index 12f1a2d..ac12da3 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -1193,34 +1193,10 @@ that final assignment still results in an error, because tuples are immutable.
Dictionaries
============
-How can I get a dictionary to display its keys in a consistent order?
----------------------------------------------------------------------
-
-You can't. Dictionaries store their keys in an unpredictable order, so the
-display order of a dictionary's elements will be similarly unpredictable.
-
-This can be frustrating if you want to save a printable version to a file, make
-some changes and then compare it with some other printed dictionary. In this
-case, use the ``pprint`` module to pretty-print the dictionary; the items will
-be presented in order sorted by the key.
-
-A more complicated solution is to subclass ``dict`` to create a
-``SortedDict`` class that prints itself in a predictable order. Here's one
-simpleminded implementation of such a class::
-
- class SortedDict(dict):
- def __repr__(self):
- keys = sorted(self.keys())
- result = ("{!r}: {!r}".format(k, self[k]) for k in keys)
- return "{{{}}}".format(", ".join(result))
-
- __str__ = __repr__
-
-This will work for many common situations you might encounter, though it's far
-from a perfect solution. The largest flaw is that if some values in the
-dictionary are also dictionaries, their values won't be presented in any
-particular order.
+How can I get a dictionary to store and display its keys in a consistent order?
+-------------------------------------------------------------------------------
+Use :class:`collections.OrderedDict`.
I want to do a complicated sort: can you do a Schwartzian Transform in Python?
------------------------------------------------------------------------------