@Phantomrus
Project Manager в крупной финтех компании

Как найти максимальное значение среди элементов списков, вложенных в словарь?

Есть list из словарей. Каждый словарь - описание автомобиля. В каждом словаре есть вложенный словарь с информацией:
cars = [{'id': 'car1', 'inform' = {...}}, {'id': 'car2', 'inform' = {...}}, {'id': 'car3', 'inform' = {...}}]

inform выглядит так: {'max_speed' = 200, color = 'red'}

Как правильно найти самую быструю машину и её id?

Сейчас есть такая реализация:
cars_speed = []
for car in cars:
    сars_speed.append([car['inform']['max_speed'], car['id']])
fastest_id = max(cars_speed)[1]


Сказали, что можно сделать легче, используя функцию max. Прочтя несколько строчек описания её в документации, решение ко мне не пришло. Быстрый гугл тоже не помог.

Также вопрос, как получить list из самых быстрых машин, если максимальное значение окажется не одно (пять машин с одинаковой max_speed)?
  • Вопрос задан
  • 1170 просмотров
Решения вопроса 1
@iegor
1. max(dict, key=lambda x: x['inform']['max_speed']) как то так?
2. По простому - сортировкой, а можно с помощью кучи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы