我有这门课:
class Model:
name = None
price = None
Model 实例的普通数组如下:
name ; price
BMW 4-series ; 90
BMW Z4 ; 190
BMW X5 ; 220
Lamborghini Miura ; 910
Ferrari 458 Italia ; 580
Ferrari California T ; 530
等等..我需要用两种方式对这个数组进行排序:首先,按品牌(因此,BMW 产品排在第一位),然后按价格,而不删除之前的影响。
问题是,如果我执行 sort() 按 name 属性排序,然后按 price,第一个排序效果将丢失.我该怎么办?
请您参考如下方法:
您可以使用 operator.attrgetter 对对象列表进行排序
from operator import attrgetter
m1 = Model(name='Lamborghini Miura', price=910)
m2 = Model(name='Ferrari 458 Italia', price=580)
lst = [m1, m2]
lst.sort(key=attrgetter('name', 'price'))
