首页 > 解决方案 > 如何在 Python 中获取最近的上一个日期?

问题描述

我有一个日期时间对象数组,我想找出数组中的哪个元素是给定日期之前最接近的(例如datetime.datetime(2020,11,1)

这篇文章展示了如何找到最近的绝对日期。如何更改此代码以使其仅返回给定日期之前的日期?

例如,如果数组包含元素和datetime.datetime(2020,10,10),则应返回第二个项目,因为它与上一个日期最接近。是否有可能用 lambda 制作这样的东西,或者它是否过于复杂?datetime.datetime(2020,10,25)datetime.datetime(2020,11,2)datetime.datetime(2020,11,1)

标签: pythondatetimelambda

解决方案


由于datetime.datetime对象可以相互比较,因此可以使用 max:

import datetime

dates = (
    datetime.datetime(2020,10,10),
    datetime.datetime(2020,10,25),
    datetime.datetime(2020,11,2)
)

date = datetime.datetime(2020,11,1)

print(max(d for d in dates if d < date))

输出:

2020-10-25 00:00:00
>>> 

推荐阅读