From 59c644eaa72b0cc48302f59d66852c4ea8332eba Mon Sep 17 00:00:00 2001 From: Lahfa Samy Date: Thu, 26 Mar 2020 15:54:04 +0100 Subject: [PATCH] bpo-39879: Update datamodel docs to include dict ordering (GH-19006) Co-authored-by: furkanonder --- Doc/reference/datamodel.rst | 10 ++++++++++ Misc/ACKS | 1 + .../2020-03-16-18-12-02.bpo-39879.CnQ7Cv.rst | 2 ++ 3 files changed, 13 insertions(+) create mode 100644 Misc/NEWS.d/next/Documentation/2020-03-16-18-12-02.bpo-39879.CnQ7Cv.rst diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index c683d9991eb..e91e855674d 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -425,6 +425,11 @@ Mappings equal (e.g., ``1`` and ``1.0``) then they can be used interchangeably to index the same dictionary entry. + Dictionaries preserve insertion order, meaning that keys will be produced + in the same order they were added sequentially over the dictionary. + Replacing an existing key does not change the order, however removing a key + and re-inserting it will add it to the end instead of keeping its old place. + Dictionaries are mutable; they can be created by the ``{...}`` notation (see section :ref:`dict`). @@ -436,6 +441,11 @@ Mappings additional examples of mapping types, as does the :mod:`collections` module. + .. versionchanged:: 3.7 + Dictionaries did not preserve insertion order in versions of Python before 3.6. + In CPython 3.6, insertion order was preserved, but it was considered + an implementation detail at that time rather than a language guarantee. + Callable types .. index:: object: callable diff --git a/Misc/ACKS b/Misc/ACKS index a4db5a54703..4e4d09038e1 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -39,6 +39,7 @@ Ray Allen Billy G. Allie Jamiel Almeida Kevin Altis +Samy Lahfa Skyler Leigh Amador Joe Amenta Rose Ames diff --git a/Misc/NEWS.d/next/Documentation/2020-03-16-18-12-02.bpo-39879.CnQ7Cv.rst b/Misc/NEWS.d/next/Documentation/2020-03-16-18-12-02.bpo-39879.CnQ7Cv.rst new file mode 100644 index 00000000000..6698ed607ca --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2020-03-16-18-12-02.bpo-39879.CnQ7Cv.rst @@ -0,0 +1,2 @@ +Updated :ref:`datamodel` docs to include :func:`dict` insertion order preservation. +Patch by Furkan Onder and Samy Lahfa.