Я хочу отсортировать объекты по одному из их атрибутов. На данный момент я делаю это следующим образом
USpeople.sort(key=lambda person: person.utility[chosenCar],reverse=True)
Это прекрасно работает, но я читал, что использование operator.attrgetter () может быть более быстрым способом достижения такого рода. Во-первых, это правильно? Предполагая, что это правильно, как я могу использовать operator.attrgetter () для достижения этой сортировки?
Я пытался,
keyFunc=operator.attrgetter('utility[chosenCar]')
USpeople.sort(key=keyFunc,reverse=True)
Однако я получаю сообщение об ошибке, в котором говорится, что атрибут 'utility [selectedCar]' отсутствует.
Проблема в том, что атрибут, по которому я хочу отсортировать, находится в словаре. Например, атрибут утилиты имеет следующий вид:
utility={chosenCar:25000,anotherCar:24000,yetAnotherCar:24500}
Я хочу отсортировать утилитой выбранного автомобиля с помощью operator.attrgetter (). Как я мог это сделать?
Заранее спасибо.