питон: как отключить автоматическую сортировку при создании словаря
Мне нужна помощь в этом случае:
m={}
m[1]=1
m[333]=333
m[2]=2
# Result:
{1: 1, 2: 2, 333: 333}
поэтому, даже когда я не ввел " 333 "последний, я получил этот "333", указанный в конце словаря, когда распечатал его. почему этот "словарь" выполняет автоматическую сортировку? и как его отключить? я могу creata функцию пересортировать, чтобы исправить заказ. но это не то, что я хочу, я просто хочу распечатать и получить порядок вывода, Как и порядок ввода данных. Есть ли хорошее объяснение и есть ли решение ?
2 ответов
это не сортировка. dict
не упорядочен вообще, поэтому вы никак не можете повлиять на порядок ключей. Есть collections.OrderedDict
в 2.7 и 3.1+, там тоже автономный модуль для 2.4-2.6.
элементы, хранящиеся в словаре, не имеют никакого внутреннего порядка. Порядок их распечатки полностью зависит от хэш-значений для каждого из ключей и других элементов в словаре.