Вопрос по python, dictionary, sorting – python: как отключить автосортировку при создании словаря

8

Мне нужна помощь в этом случае:

<code>m={}
m[1]=1
m[333]=333
m[2]=2

# Result:
{1: 1, 2: 2, 333: 333}
</code>

так что даже когда я не ввел "333"; последнее, я получил это '333' указан в конце словаря, когда распечатать его. почему этот «словарь» делать автосортировку? а как это отключить? Я могу создать функцию для сортировки, чтобы исправить порядок. но это не то, что я хочу, я просто хочу напечатать и получить порядок вывода, такой же, как порядок ввода данных. Есть ли хорошее объяснение и есть ли решение?

Вы, скорее всего, хотите использоватьOrderedDict. Dan D.
Спасибо, парень, это объясняет, почему у меня возникла эта проблема. веселит. andio
stackoverflow.com/questions/1872329/… shiva

Ваш Ответ

2   ответа
2

Элементы, хранящиеся в словаре, не имеют какого-либо внутреннего порядка. Порядок их распечатки полностью зависит от хеш-значений для каждого из ключей и других элементов в словаре.

Большое спасибо за информацию. andio
22

Это не сортировка.dict не заказан вообще, поэтому вы не можете влиять на порядок ключей. Естьcollections.OrderedDict в 2.7 и 3.1+ также естьавтономный модуль для 2,4-2,6.

@wRAR: done ;-). Извините, я новичок в этом форуме, я только что узнал, как работает этот форум (особенно в отношении оценки и принятия вещей). извините и большое спасибо. andio
прохладно. orderdict - это то, что я ищу. Большое спасибо. andio
+1: удалил мой ответ в пользу этого.
@andio примите ответ

Похожие вопросы