python3 сортирует список словарей по атрибуту значений dict - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть список словарей, которые хранятся в part_results, например:

[{'Pad': FAILED! 69% Pad in BF1, serf = 12.06 ≤ 17.4.}, 
 {'Pipe': FAILED! 196% Pipe in BF1, pmax = 205.38 ≤ f_pipe_ = 104.67 MPa.},
 {'Foot plate': FAILED! 89% Foot plate in BF1, serf = 34.90 ≤ 39.1.}]

Значения диктов - это красиво напечатанные объекты (всегда один объект), которые имеют атрибут «использование»;это процентные значения в распечатке.

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

Вывод будет

[{'Pipe': FAILED! 196% Pipe in BF1, pmax = 205.38 ≤ f_pipe_ = 104.67 MPa.},
 {'Foot plate': FAILED! 89% Foot plate in BF1, serf = 34.90 ≤ 39.1.},
 {'Pad': FAILED! 69% Pad in BF1, serf = 12.06 ≤ 17.4.}]

Моя первая попытка была похожа на

sorted(part_results, key=lambda x: part_results)

, что явно не то, что я хочу: она будет сортироваться по клавишам dict,Я знаю, что для этого не требуется ключ сортировки, но лямбда необходима для доступа к значениям dicts в цикле - как мне это сделать?

1 Ответ

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

Учитывая, что в каждом dict всегда есть одна пара ключ-значение, вы можете попробовать:

sorted(part_results, key=lambda d: list(d.values())[0].utilisation)

Это сортирует список диктов по атрибуту utilisation их соответствующих первых (и только) значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...