[Python-checkins] bpo-34083: Update dict order in Functional HOWTO (GH-8230)

Miss Islington (bot) webhook-mailer at python.org
Wed Jul 11 07:21:55 EDT 2018


https://github.com/python/cpython/commit/151820e7a0ebe50b3d4fa64e22623c5470f1c56f
commit: 151820e7a0ebe50b3d4fa64e22623c5470f1c56f
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-07-11T04:21:52-07:00
summary:

bpo-34083: Update dict order in Functional HOWTO (GH-8230)

(cherry picked from commit 5e5bbbec467a1569c914a048a94e7597528f92cf)

Co-authored-by: Stig Johan Berggren <stigjb at gmail.com>

files:
M Doc/howto/functional.rst

diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst
index 40601812a77c..47a5bb9cf284 100644
--- a/Doc/howto/functional.rst
+++ b/Doc/howto/functional.rst
@@ -273,23 +273,24 @@ dictionary's keys::
 
     >>> m = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6,
     ...      'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, 'Dec': 12}
-    >>> for key in m:  #doctest: +SKIP
+    >>> for key in m:
     ...     print(key, m[key])
-    Mar 3
+    Jan 1
     Feb 2
-    Aug 8
-    Sep 9
+    Mar 3
     Apr 4
+    May 5
     Jun 6
     Jul 7
-    Jan 1
-    May 5
+    Aug 8
+    Sep 9
+    Oct 10
     Nov 11
     Dec 12
-    Oct 10
 
-Note that the order is essentially random, because it's based on the hash
-ordering of the objects in the dictionary.
+Note that starting with Python 3.7, dictionary iteration order is guaranteed
+to be the same as the insertion order. In earlier versions, the behaviour was
+unspecified and could vary between implementations.
 
 Applying :func:`iter` to a dictionary always loops over the keys, but
 dictionaries have methods that return other iterators.  If you want to iterate
@@ -301,8 +302,8 @@ The :func:`dict` constructor can accept an iterator that returns a finite stream
 of ``(key, value)`` tuples:
 
     >>> L = [('Italy', 'Rome'), ('France', 'Paris'), ('US', 'Washington DC')]
-    >>> dict(iter(L))  #doctest: +SKIP
-    {'Italy': 'Rome', 'US': 'Washington DC', 'France': 'Paris'}
+    >>> dict(iter(L))
+    {'Italy': 'Rome', 'France': 'Paris', 'US': 'Washington DC'}
 
 Files also support iteration by calling the :meth:`~io.TextIOBase.readline`
 method until there are no more lines in the file.  This means you can read each



More information about the Python-checkins mailing list