Используйте sorted(people, key=lambda person: person['age']). Функция создаст новый список, не меняя порядок исходного.
Упорядочивание массива словарей по возрастанию поля "age"
Используйте sorted(people, key=lambda person: person['age']). Функция создаст новый список, не меняя порядок исходного.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дан массив словарей, каждый из которых содержит ключ "age". Требуется отсортировать этот массив по возрастанию значений указанного ключа.
Пример 1: Ввод: [{'age': 30}, {'age': 10}, {'age': 34}, {'age': 32}] Вывод: [{'age': 10}, {'age': 30}, {'age': 32}, {'age': 34}]
people = [{'age': 30}, {'age': 10}, {'age': 34}, {'age': 32}]
Необходимо получить новый список, упорядоченный по ключу "age".
Ответ
Используйте sorted(people, key=lambda person: person['age']). Функция создаст новый список, не меняя порядок исходного.
people = [{'age': 30}, {'age': 10}, {'age': 34}, {'age': 32}]
ordered = sorted(people, key=lambda person: person['age'])
Результат: [{'age': 10}, {'age': 30}, {'age': 32}, {'age': 34}]. Сортировка стабильна: элементы с одинаковым возрастом сохранят взаимный порядок. Если новый список не нужен, можно вызвать people.sort(key=...), но тогда изменится исходный объект.
Копируется контейнер списка, а не сами словари: изменения полей через ordered будут видны и через people. Отсутствующий ключ вызовет KeyError; правила обработки пропущенного возраста следует задать отдельно.