mirror of
https://github.com/python/cpython.git
synced 2025-11-02 19:12:55 +00:00
Closes #14298: update section about dict implementation.
This commit is contained in:
parent
1725feabd0
commit
b20a019d46
1 changed files with 10 additions and 8 deletions
|
|
@ -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?
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue