在Python中,如果我有一个datetime和一个datetimes 列表,例如:
import datetime as dt
date = dt.datetime(1970, 1,1)
dates = [dt.datetime(1970, 1, 2), dt.datetime(1970, 1,3)]
Run Code Online (Sandbox Code Playgroud)
我怎么能得到datetime最接近的列表date?
您可以使用min自定义key参数:
>>> import datetime as dt
>>> date = dt.datetime(1970, 1, 1)
>>> dates = [dt.datetime(1970, 1, 2), dt.datetime(1970, 1, 3)]
>>> min(dates, key=lambda d: abs(d - date))
datetime.datetime(1970, 1, 2, 0, 0)
Run Code Online (Sandbox Code Playgroud)
减去两个datetime对象会给出一个timedelta对象:
>>> map(lambda d: abs(d - date), dates)
[datetime.timedelta(1), datetime.timedelta(2)]
Run Code Online (Sandbox Code Playgroud)
这在比较中表现得像你期望的那样.
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |