如何对日期时间或日期对象列表进行排序?

use*_*084 61 python sorting datetime date list

如何对日期和/或日期时间对象列表进行排序?接受答案这里是不是为我工作:

from datetime import datetime,date,timedelta


a=[date.today(), date.today() + timedelta(days=1), date.today() - timedelta(days=1)]
print a # prints '[datetime.date(2013, 1, 22), datetime.date(2013, 1, 23), datetime.date(2013, 1, 21)]'
a = a.sort()
print a # prints 'None'....what???
Run Code Online (Sandbox Code Playgroud)

Vol*_*ity 99

你得到None,因为list.sort()它运行在原地,这意味着它不返回任何东西,但修改列表本身.您只需要在a.sort()不再分配的情况下拨打电话a.

有一个内置函数sorted(),它返回列表的排序版本 - a = sorted(a)也会做你想要的.

  • 哪种方式最好?他们做同样的事情吗? (3认同)
  • @radtek`list.sort()`更改调用它的对象(始终是一个列表).`sorted()`适用于任何可迭代的,不仅仅是列表.如果你有一个非常大的列表,`list.sort()`可能会快一些,因为`sorted()`创建一个新列表并需要将元素复制到它. (2认同)