Уведомления

Группа в Telegram: @pythonsu

#1 Июль 28, 2014 16:52:29

NOK
От:
Зарегистрирован: 2011-07-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

Всем привет!

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

list_s = list(engine.execute("SELECT service_id, service_description FROM service"))
list_h = list(engine.execute("SELECT host_id, host_name FROM host ORDER BY host_name"))

В словаре соотношение service_id к host_id. Надо упорядочить service_id по соответствующему host_id.



Офлайн

#2 Июль 28, 2014 17:18:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

Метод sort (или функция sorted), смотрите его параметр key.
Читать тут



Офлайн

#3 Июль 28, 2014 17:35:23

NOK
От:
Зарегистрирован: 2011-07-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

FishHook
Метод sort (или функция sorted), смотрите его параметр key.Читать тут
Спасибо за ответ. Я читал эту страницу, там нет описания моего случая.



Офлайн

#4 Июль 28, 2014 17:54:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

Да ладно!

l = [{1:2}, {2:6}, {4: 7}, {1: 12}, {0:3}]
def get_value(dct):
    return list(dct.values())[0]
print (sorted(l, key=get_value))



Офлайн

#5 Июль 28, 2014 18:12:44

NOK
От:
Зарегистрирован: 2011-07-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

Нет нет, похоже я плохо описал задачу, или даже неправильно.

Два массива списков, в каждом списке есть свое id-поле (первый элемент). Логически они связаны через словарь.
Я задаю id из первого списка в первом массиве, python возвращает номер списка из второго массива.



Офлайн

#6 Июль 28, 2014 18:23:02

NOK
От:
Зарегистрирован: 2011-07-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

FishHook
Да ладно!
Второй-то список где? По одному списку, передавая параметр в словать, это понятно. Тут надо, получая значение из словаря, искать его во втором списке.



Отредактировано NOK (Июль 28, 2014 18:24:09)

Офлайн

#7 Июль 28, 2014 19:35:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

я ничего не понял. Показывайте пример списков, словаря и итоговой сортировки



Офлайн

#8 Июль 28, 2014 19:42:45

NOK
От:
Зарегистрирован: 2011-07-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

FishHook
я ничего не понял. Показывайте пример списков, словаря и итоговой сортировки
Все зарабатало. Код немного поменял, но за основу взял именно то, что Вы предложили.
Прошу прощение, что сразу не увидел решения в примере выше. Упрощаю по максимому формулировку задачи, прежде чем тут написать, в итоге сам запутался…
Большое спасибо за помощь!



Офлайн

#9 Июль 29, 2014 00:10:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Сортировка списка по критерию из словаря

NOK
Есть два списка и словарь, который играет связующим звеном этих списков.

Играет роль связующего звена между этими списками.

NOK
похоже я плохо описал задачу, или даже неправильно.

Да, не знаешь определений.

Список
Элемент списка
Словарь
Элемент словаря
Ключ словаря
Значение словаря
Кортеж
Элемент кортежа

В общем, в любой книге есть всё это.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version