Notice: file_put_contents(): Write of 9348 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 8192 of 17540 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Zen of Python@zen_of_python P.4318
ZEN_OF_PYTHON Telegram 4318
Упорядочены ли словари в Python?

Что значит «упорядоченный»?

Когда говорят об упорядоченности, важно понять контекст. Например:

— Если просят расставить коробки, порядок — по размеру;
— Если вы в очереди – порядок по времени прихода.

Если структура упорядоченная, она в каком-то смысле сохраняет свой внутренний порядок. А как со словарями?


Исторический обзор

До Python 3.6: словари не сохраняли никакого порядка при выводе или переборе. Параметры key: value могли выводиться в совершенно произвольном порядке.

Начиная с Python 3.6 словари начали сохранять порядок вставки — но это считалось технической деталью реализации, а не официально гарантированным свойством. Позднее это стало частью официальной спецификации языка.


Это значит, что словари упорядочены?

Частично — да:: словари сохраняют порядок добавления элементов. Это позволяет, например, при переборе ключей получать их в том же порядке, что при вставке.

Важное «но»: порядок не влияет на сравнение словарей:


a = {"x": 1, "y": 2}
b = {"y": 2, "x": 1}
a == b # True


То есть, равенство проверяется по парам ключ‑значение, а не по их порядку (в отличие от списка).


Почему обычный dict сравнивается по содержанию, а не по порядку?

— Оптимизация: словари предназначены для быстрой работы по ключу (хэширование);
— Благодаря «разделённой таблице» (split-table) в реализации CPython, словарь может одновременно эффективно хранить и порядке вставки, и хэш-структуру.

#основы
👌 — Если всё по красоте
👌13



tgoop.com/zen_of_python/4318
Create:
Last Update:

Упорядочены ли словари в Python?

Что значит «упорядоченный»?

Когда говорят об упорядоченности, важно понять контекст. Например:

— Если просят расставить коробки, порядок — по размеру;
— Если вы в очереди – порядок по времени прихода.

Если структура упорядоченная, она в каком-то смысле сохраняет свой внутренний порядок. А как со словарями?


Исторический обзор

До Python 3.6: словари не сохраняли никакого порядка при выводе или переборе. Параметры key: value могли выводиться в совершенно произвольном порядке.

Начиная с Python 3.6 словари начали сохранять порядок вставки — но это считалось технической деталью реализации, а не официально гарантированным свойством. Позднее это стало частью официальной спецификации языка.


Это значит, что словари упорядочены?

Частично — да:: словари сохраняют порядок добавления элементов. Это позволяет, например, при переборе ключей получать их в том же порядке, что при вставке.

Важное «но»: порядок не влияет на сравнение словарей:


a = {"x": 1, "y": 2}
b = {"y": 2, "x": 1}
a == b # True


То есть, равенство проверяется по парам ключ‑значение, а не по их порядку (в отличие от списка).


Почему обычный dict сравнивается по содержанию, а не по порядку?

— Оптимизация: словари предназначены для быстрой работы по ключу (хэширование);
— Благодаря «разделённой таблице» (split-table) в реализации CPython, словарь может одновременно эффективно хранить и порядке вставки, и хэш-структуру.

#основы
👌 — Если всё по красоте

BY Zen of Python


Share with your friend now:
tgoop.com/zen_of_python/4318

View MORE
Open in Telegram


Telegram News

Date: |

Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. Hashtags Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more.
from us


Telegram Zen of Python
FROM American