Ответ не имеет никакого отношения к Python и всему, что связано со структурами данных - это поведение универсально и ожидается для всех языков, в которых реализована аналогичная структура данных. В Python это называется словарь, на других языках это называется карта или хэш-карта или хэш-таблица. Есть несколько других похожих имен для той же базовой структуры данных.
Словарь Python является коллекцией Associative , в отличие от списка Python (который является просто массивом), где егоэлементы непрерывны в памяти.
Большое преимущество, которое предлагают словари (ассоциативные коллекции), заключается в быстром и постоянном времени поиска (O (1)) - массивы также предлагают быстрый поиск, поскольку вычисление индекса тривиально - однакословарь состоит из пар ключ-значение, где ключ может быть любым, если только он может быть хэшируемым.
По сути, чтобы определить «индекс», в котором связанное значение должно находиться в ассоциативном контейнере, вы берете ключхэшируйте, придумайте какой-нибудь способ отображения хеша на число и рассматривайте это число как индекс. Так как маловероятно, что два разных объекта выдают один и тот же хеш, теоретически это может произойти - что более вероятно, так это то, что ваша процедура хеширования в число отображает два уникальных хеша на одно и то же число - вв любом случае подобные коллизии могут происходить, и существуют стратегии для обработки этих коллизий .
Дело в том, что хэш ключа определяет порядок, в котором соответствующее значение появляется вколлекция - следовательно, нет внутреннего порядка .