summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorhui shang <shangdahao@gmail.com>2018-04-04 04:55:05 (GMT)
committerINADA Naoki <methane@users.noreply.github.com>2018-04-04 04:55:05 (GMT)
commitdfbbbf16f9aab82330c634913441b5ac73267d9c (patch)
tree96c5ea7f1aed7be317d45bc1e101dfc62e6357a0 /Doc/library
parentc869529ea9fbed574d34cf7ac139ca3f81b62ef0 (diff)
downloadcpython-dfbbbf16f9aab82330c634913441b5ac73267d9c.zip
cpython-dfbbbf16f9aab82330c634913441b5ac73267d9c.tar.gz
cpython-dfbbbf16f9aab82330c634913441b5ac73267d9c.tar.bz2
bpo-32337: Update documentats about dict order (GH-4973)
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/stdtypes.rst16
1 files changed, 8 insertions, 8 deletions
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index ad7f578..a213189 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -4256,17 +4256,17 @@ support membership tests:
Return an iterator over the keys, values or items (represented as tuples of
``(key, value)``) in the dictionary.
- Keys and values are iterated over in an arbitrary order which is non-random,
- varies across Python implementations, and depends on the dictionary's history
- of insertions and deletions. If keys, values and items views are iterated
- over with no intervening modifications to the dictionary, the order of items
- will directly correspond. This allows the creation of ``(value, key)`` pairs
+ Keys and values are iterated over in insertion order.
+ This allows the creation of ``(value, key)`` pairs
using :func:`zip`: ``pairs = zip(d.values(), d.keys())``. Another way to
create the same list is ``pairs = [(v, k) for (k, v) in d.items()]``.
Iterating views while adding or deleting entries in the dictionary may raise
a :exc:`RuntimeError` or fail to iterate over all entries.
+ .. versionchanged:: 3.7
+ Dict order is guaranteed to be insertion order.
+
.. describe:: x in dictview
Return ``True`` if *x* is in the underlying dictionary's keys, values or
@@ -4293,9 +4293,9 @@ An example of dictionary view usage::
>>> print(n)
504
- >>> # keys and values are iterated over in the same order
+ >>> # keys and values are iterated over in the same order (insertion order)
>>> list(keys)
- ['eggs', 'bacon', 'sausage', 'spam']
+ ['eggs', 'sausage', 'bacon', 'spam']
>>> list(values)
[2, 1, 1, 500]
@@ -4303,7 +4303,7 @@ An example of dictionary view usage::
>>> del dishes['eggs']
>>> del dishes['sausage']
>>> list(keys)
- ['spam', 'bacon']
+ ['bacon', 'spam']
>>> # set operations
>>> keys & {'eggs', 'bacon', 'salad'}