Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2009 16:14:03

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка dictionary

Есть словарь, где ключ - какое-то число, а значение - массив.
Сортирую данынй словарь по ключу и записываю в другой словарь, но сортировка не сохраняется. Что делаю неправильно?

dic = {
'103' : [1,2,3],
'101' : [1,2,3],
'102' : [1,2,3],
'100' : [1,2,3],
'104' : [1,2,3],
}

a = dic.keys()
a.sort()

b = {}

for i in a:
print i, dic[i]
b[i] = dic[i]

print b
вывод

>>> 
100 [1, 2, 3]
101 [1, 2, 3]
102 [1, 2, 3]
103 [1, 2, 3]
104 [1, 2, 3]
{'102': [1, 2, 3], '103': [1, 2, 3], '100': [1, 2, 3], '101': [1, 2, 3], '104': [1, 2, 3]}



Офлайн

#2 Март 19, 2009 16:17:12

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Сортировка dictionary

Словарь - это структура неупорядоченная.



Офлайн

#3 Март 19, 2009 16:28:20

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка dictionary

Тоесть вставляя элементы по возростанию они будут добавлятся не в конец, а куда угодно?



Офлайн

#4 Март 19, 2009 16:59:05

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Сортировка dictionary

Да



Офлайн

#5 Март 19, 2009 17:25:11

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка dictionary

Я так и думал :)

Спасибо! Вопрос закрыт.



Офлайн

#6 Март 20, 2009 03:07:34

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Сортировка dictionary

Если нужен упорядоченный словарь, можно воспользоваться готовым решением: http://code.activestate.com/recipes/576693/



Офлайн

#7 Март 20, 2009 07:25:21

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка dictionary

или так)))

dic = {
'103' : [1,2,3],
'101' : [1,2,3],
'102' : [1,2,3],
'100' : [1,2,3],
'104' : [1,2,3],
}

for i in sorted(dic):
print i, dic[i]



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version