我试图在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(2009, 01, 02), "Jan 2"), Day(datetime.date(2009, 01, 01), "Jan 1")]
print mylist
print mylist.sort()
Run Code Online (Sandbox Code Playgroud)
这个输出是:
[<__main__.Day instance at 0x519e0>, <__main__.Day instance at 0x51a08>]
None
Run Code Online (Sandbox Code Playgroud)
有人能告诉我解决这个问题的好方法吗?为什么sort()函数返回None?
mylist.sort()不返回任何内容,它会对列表进行排序.将其更改为
mylist.sort()
print mylist
Run Code Online (Sandbox Code Playgroud)
看到正确的结果.
请参阅http://docs.python.org/library/stdtypes.html#mutable-sequence-types注7.
排序或反转大型列表时,sort()和reverse()方法可以在适当的位置修改列表.为了提醒您它们是由副作用操作的,它们不会返回已排序或反转的列表.
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |