Python 按属性对对象列表进行排序
我正在尝试在python中对对象列表进行排序,但是此代码不起作用:Python 按属性对对象列表进行排序,python,Python,我正在尝试在python中对对象列表进行排序,但是此代码不起作用: import datetime class Day: def __init__(self, date, text): self.date = date self.text = text def __cmp__(self, other): return cmp(self.date, other.date) mylist = [Day(datetime.date(
import datetime
class Day:
def __init__(self, date, text):
self.date = date
self.text = text
def __cmp__(self, other):
return cmp(self.date, other.date)
mylist = [Day(datetime.date(2009, 01, 02), "Jan 2"), Day(datetime.date(2009, 01, 01), "Jan 1")]
print mylist
print mylist.sort()
其输出为:
[<__main__.Day instance at 0x519e0>, <__main__.Day instance at 0x51a08>]
None
有人能告诉我解决这个问题的好方法吗?为什么排序函数不返回任何值?mylist.sort不返回任何值,它将对列表进行适当排序。换成
mylist.sort()
print mylist
以查看正确的结果
见附注7
排序和反向方法
修改经济适用的列表
排序或反转时的空间大小
大名单。提醒你他们
副作用,他们不会
返回已排序或已反转的列表
有关将返回任何iterable的已排序副本的函数,请参阅。-1:文档中没有引用。“已排序”不会修改原始列表。有时候你想修改原始列表,有时候你不想。我知道。这就是为什么它返回一个排序副本,而不是对排序列表的引用。