我想按照对象的某个属性对它们进行排序。目前,我是按照以下方式进行的:
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[chosenCar]'。
问题在于我想要排序的属性在一个字典中。例如,实用属性的形式如下:
utility={chosenCar:25000,anotherCar:24000,yetAnotherCar:24500}
我想使用operator.attrgetter()根据所选车辆的效用进行排序。我该怎么做?
提前致谢。