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

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

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

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

Посмотрите, что «b» и «c» поменялись местами. Как я могу сделать так, чтобы позиция была такой же, как и в момент создания словаря?

5
Thomas 27 Июн 2010 в 20:17

2 ответа

Лучший ответ

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

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

21
Nick Bastin 28 Июн 2010 в 02:31

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

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

4
dzida 27 Июн 2010 в 16:26