【问题标题】:max date in python listpython列表中的最大日期
【发布时间】:2015-02-04 02:24:36
【问题描述】:

我有一个清单:

a=[datetime.date(2010,10,20),1,4,datetime.date(2013,10,20)]

如您所见,列表包含不同类型的元素。如何获取列表中的最大日期?

我的尝试:

from datetime import datetime
b=datetime.max(a)
print b

【问题讨论】:

    标签: python list date


    【解决方案1】:

    供参考Find oldest/youngest datetime object in a list

    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)
    

    之前的帖子有过滤器以排除未来的事件

    【讨论】:

      【解决方案2】:

      首先,将日期和整数放在同一个列表中(除了作为中间步骤外)可能表明您的数据结构不合适。也就是说,您可以使用生成器表达式轻松获取日期的最大值:

      >>> 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)
      

      【讨论】:

      • 这不是很具体,因此很难帮助您找到错误。
      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2017-12-25
      • 1970-01-01
      相关资源
      最近更新 更多