我有一个清单:
a=[datetime.date(2010,10,20),1,4,datetime.date(2013,10,20)]
Run Code Online (Sandbox Code Playgroud)
如您所见,列表包含不同类型的元素.如何获得列表中的最大日期?
我的尝试:
from datetime import datetime
b=datetime.max(a)
print b
Run Code Online (Sandbox Code Playgroud)
Nod*_*dak 10
For guidence在列表中查找最旧/最年轻的日期时间对象
from datetime import datetime
datetime_list = [
datetime(2009, 10, 12, 10, 10),
datetime(2010, 10, 12, 10, 10),
datetime(2010, 10, 12, 10, 10),
datetime(2015, 2, 12, 10, 10), # future
datetime(2016, 2, 12, 10, 10), # future
]
oldest = min(datetime_list)
youngest = max(datetime_list)
Run Code Online (Sandbox Code Playgroud)
之前的帖子有过滤器以排除未来的事件
首先,将日期和整数保存在同一个列表中 - 除了作为中间步骤 - 可能是您的数据结构不合适的标志.也就是说,通过使用生成器表达式,您可以轻松地仅使用日期的最大值:
>>> import datetime
>>> a=[datetime.date(2010,10,20),1,4,datetime.date(2013,10,20)]
>>> max(d for d in a if isinstance(d, datetime.date))
datetime.date(2013, 10, 20)
Run Code Online (Sandbox Code Playgroud)