Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2010 18:12:24

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

Подскажите есть ли возможность, если да то какая, сортировки словаря словарей. К примеру,

{
'as1': {
'title': "tit1",
'position': 1
},
'as2': {
'title': "tit2",
'position': 3
},
'as3': {
'title': "tit3",
'position': 2
},
}
Нужно отсортировать по position.



Отредактировано (Июнь 3, 2010 18:12:53)

Офлайн

#2 Июнь 3, 2010 18:52:00

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

dict не сортируется, где-то тут на форуме были ссылки на сортируемые словари.



Офлайн

#3 Июнь 4, 2010 05:35:54

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

Сортировать не можете, но можете обходить в отсортированном порядке, примерно так:

for key in sorted(dt): 
print key, dt[key]
или так
for key, value in sorted(dt.items()):
print key, value



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

Отредактировано (Июнь 4, 2010 05:38:08)

Офлайн

#4 Июнь 4, 2010 14:11:05

polymetr
От:
Зарегистрирован: 2010-03-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

вывод с сортировкой по position:

for i,j in sorted(a.items(),key = lambda x: x[1]['position']):
print i,j



Офлайн

#5 Июль 28, 2021 09:57:26

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

halo
подскажите пожалуйста, как лучше сделать?
Лучше не валить все в кучу а сделать отдельно чтение, отдельно сортировку, отдельно выовд.
Например функциями.
halo
Никак не могу отсортировать по баллам, а затем по алфавиту.
А почему вы решили что у вас неправильный путь?
 >>> li=[("Битюг",5.5),("Абрахам",5.5),("Яша",1000)]
>>> sorted(li,key=lambda x:(-x[1],x[0]))
[('Яша', 1000), ('Абрахам', 5.5), ('Битюг', 5.5)]



Отредактировано doza_and (Июль 28, 2021 10:01:55)

Офлайн

#6 Июль 28, 2021 18:14:45

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

doza_and
вы как а.дюма “20 лет спустя” ) и все такое



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#7 Июль 28, 2021 20:46:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сортировка словаря словарей

Вы правы :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version