阅读量:0
在Python中,有多种方法可以对对象列表排序:
- 使用
sorted()
函数:该函数可以对任何可迭代对象进行排序。例如,对一个对象列表objs
按照某个属性进行排序可以使用sorted(objs, key=lambda x: x.attr)
,其中attr
为对象的属性名。 - 使用
list.sort()
方法:该方法在原地对列表进行排序,不会返回新的排序后的列表。例如,对一个对象列表objs
按照某个属性进行排序可以使用objs.sort(key=lambda x: x.attr)
。 - 使用
operator.attrgetter()
函数:可以通过指定属性来创建一个函数,用于获取对象的属性值。然后使用sorted()
函数或list.sort()
方法对对象列表进行排序。例如,对一个对象列表objs
按照某个属性进行排序可以使用sorted(objs, key=operator.attrgetter('attr'))
。 - 使用
functools.cmp_to_key()
函数:该函数可以将一个比较函数转换为一个key函数,用于排序。例如,对一个对象列表objs
按照某个属性进行排序可以使用sorted(objs, key=functools.cmp_to_key(lambda x, y: x.attr - y.attr))
。
以上是常用的几种方法,根据具体的需求可以选择合适的方法进行排序。