在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))
。以上是常用的幾種方法,根據具體的需求可以選擇合適的方法進行排序。