Сортировка списка словарей со списком в качестве значений на основе второго элемента значения списка в словаре - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть список, который содержит словари, и в каждом словаре значения также перечислены как:

a = [{"25.21" : [400,500] , "25.22" : [700,502]} , {"12.15" : [350,800] , "12.13" : [750,803]}]

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

a = [ {"12.13" : [750,803] , "12.15" : [350,800] } , {"25.22" : [700,502], "25.21" : [400,500] }]

Первый элемент списка в качестве значений для каждого ключа внутри словаря будет другим.Как это сделать в oneliner, если это возможно, без использования оператора itemgetter?

Этот вопрос не такой, как этот .В этом случае значения словаря внутри списка содержали только целые числа, в то время как этот вопрос имеет список в качестве значений словарей внутри основного списка.

1 Ответ

0 голосов
/ 21 сентября 2018

Использование sorted

Демонстрация:

a = [{"25.21" : [400,500] , "25.22" : [700,502]} , {"12.15" : [350,800] , "12.13" : [750,803]}]

print(sorted(a, key=lambda x: list(x.items())[1][1], reverse=True))
#print(sorted(a, key=lambda x: x.items()[1][1], reverse=True))   #python2

Выход:

[{'12.15': [350, 800], '12.13': [750, 803]}, {'25.21': [400, 500], '25.22': [700, 502]}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...