Заказ товаров в словаре Python - PullRequest
5 голосов
/ 27 июня 2010

Я просто сомневаюсь ... Я создал следующий словарь:

>>> alpha={'a': 10, 'b': 5, 'c': 11}

Но, когда я хочу увидеть словарь ключей и значений, я получил:

>>> alpha
{'a': 10, 'c': 11, 'b': 5}

Смотрите, что "b" и "c" поменялись местами. Как я могу сделать положение таким же, как в момент создания словаря?

Ответы [ 2 ]

21 голосов
/ 27 июня 2010

Словари являются неупорядоченными контейнерами - если вы хотите сохранить заказ, вы можете использовать collections.OrderedDict (Python 2.7 или более позднюю версию) или использовать другой тип контейнера, который естественным образом сохраняет порядок.

Обычно, если у вас есть шаблон доступа, который заботится о упорядоченном поиске, то словарь решает проблему, которой у вас нет (быстрый доступ к случайным элементам), и в то же время дает вам новый.

4 голосов
/ 27 июня 2010

Диктонары не гарантируют сортировку ключей. Вы можете найти эту информацию в документации по Python: http://docs.python.org/tutorial/datastructures.html#dictionaries

Вы всегда можете sort ключи словаря или использовать другие, более специализированные коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...