[Python-checkins] cpython: Closes #14298: update section about dict implementation.

georg.brandl python-checkins at python.org
Wed Mar 14 07:50:21 CET 2012


http://hg.python.org/cpython/rev/305cf9be1cd3
changeset:   75620:305cf9be1cd3
user:        Georg Brandl <georg at python.org>
date:        Wed Mar 14 07:50:17 2012 +0100
summary:
  Closes #14298: update section about dict implementation.

files:
  Doc/faq/design.rst |  17 ++++++++++-------
  1 files changed, 10 insertions(+), 7 deletions(-)


diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst
--- a/Doc/faq/design.rst
+++ b/Doc/faq/design.rst
@@ -526,14 +526,16 @@
 
 Dictionaries work by computing a hash code for each key stored in the dictionary
 using the :func:`hash` built-in function.  The hash code varies widely depending
-on the key; for example, "Python" hashes to -539294296 while "python", a string
-that differs by a single bit, hashes to 1142331976.  The hash code is then used
-to calculate a location in an internal array where the value will be stored.
-Assuming that you're storing keys that all have different hash values, this
-means that dictionaries take constant time -- O(1), in computer science notation
--- to retrieve a key.  It also means that no sorted order of the keys is
-maintained, and traversing the array as the ``.keys()`` and ``.items()`` do will
-output the dictionary's content in some arbitrary jumbled order.
+on the key and a per-process seed; for example, "Python" could hash to
+-539294296 while "python", a string that differs by a single bit, could hash
+to 1142331976.  The hash code is then used to calculate a location in an
+internal array where the value will be stored.  Assuming that you're storing
+keys that all have different hash values, this means that dictionaries take
+constant time -- O(1), in computer science notation -- to retrieve a key.  It
+also means that no sorted order of the keys is maintained, and traversing the
+array as the ``.keys()`` and ``.items()`` do will output the dictionary's
+content in some arbitrary jumbled order that can change with every invocation of
+a program.
 
 
 Why must dictionary keys be immutable?

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list