Я изучаю Python в настоящий момент и был озадачен тем, что он повторяется при циклировании через словари. В одном из уроков нам пришлось перебирать словарь и извлекать «ключевые» предметы для гипотетического супермаркета. Я задал вопрос о принципах передовой практики для итерации через словарь, и мне сказали, что сортировка словаря для целей итераций не делает действительно до тех пор, пока вы не перейдете к обработке больших наборов данных, поэтому я не должен об этом беспокоиться ,Словарь Итерационные скорости
Я не был уверен, почему преподаватель сказал, что это не имеет значения, поскольку я считаю, что скорость является ключом к обработке больших наборов данных. Я прочитал и нашел очень полезный пост (Python: List vs Dict for look up table).
Из этого можно предположить, что в зависимости от задачи сортировка словаря является ситуационной? Или вы скажете, что нужно всегда сортировать словарь для оптимальной скорости обработки?
Чтобы перевести это в другой контекст - воспользуемся следующим примером: Скажем, что мы ищем цену кучу кешью в словаре, который содержит 10 000 записей. В этом случае, если записи были помещены случайным образом в словаре - будет ли скорость поиска этой записи «быстрее», если бы она была отсортирована, а не беспорядочно размещена в любом месте?
спасибо!
Python словари являются реализациями хеш-функций. См. Https://en.wikipedia.org/wiki/Hash_table и http://stackoverflow.com/questions/114830/is-a-python-dictionary-an-example-of-a-hash-table – Alexander
словари являются несортированными коллекции ... однако у них очень быстрый поиск предметов (O (1)) –
* Сортировка * словаря? Почему бы это улучшить скорость? – user2357112