Kaydet (Commit) b20a019d authored tarafından Georg Brandl's avatar Georg Brandl

Closes #14298: update section about dict implementation.

üst 1725feab
...@@ -526,14 +526,16 @@ far) under most circumstances, and the implementation is simpler. ...@@ -526,14 +526,16 @@ far) under most circumstances, and the implementation is simpler.
Dictionaries work by computing a hash code for each key stored in the dictionary 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 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 on the key and a per-process seed; for example, "Python" could hash to
that differs by a single bit, hashes to 1142331976. The hash code is then used -539294296 while "python", a string that differs by a single bit, could hash
to calculate a location in an internal array where the value will be stored. to 1142331976. The hash code is then used to calculate a location in an
Assuming that you're storing keys that all have different hash values, this internal array where the value will be stored. Assuming that you're storing
means that dictionaries take constant time -- O(1), in computer science notation keys that all have different hash values, this means that dictionaries take
-- to retrieve a key. It also means that no sorted order of the keys is constant time -- O(1), in computer science notation -- to retrieve a key. It
maintained, and traversing the array as the ``.keys()`` and ``.items()`` do will also means that no sorted order of the keys is maintained, and traversing the
output the dictionary's content in some arbitrary jumbled order. 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? Why must dictionary keys be immutable?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment