找到最近的小时

ov1*_*d1u 8 python arrays time

我有一个包含这些项目的列表:

hours = ['19:30', '20:10', '20:30', '21:00', '22:00']
Run Code Online (Sandbox Code Playgroud)

假设现在是20:18,我如何从列表中获得'20:10'项?我想用它来查找电视指南中当前正在播放的节目.

Kat*_*iel 9

>>> import datetime
>>> hours = ['19:30', '20:10', '20:30', '21:00', '22:00']
>>> now = datetime.datetime.strptime("20:18", "%H:%M")
>>> min(hours, key=lambda t: abs(now - datetime.datetime.strptime(t, "%H:%M")))
'20:10'
Run Code Online (Sandbox Code Playgroud)

  • 做OP所要求的+1(找到最接近的小时),但他也写道他想找到"当前的跑步节目" - 所以对于'20:22`你会得到'20:30`这显然不是目前正在播放的节目. (2认同)

Kab*_*bie 5

容易但脏的方式

max(t for t in sorted(hours) if t<=now)
Run Code Online (Sandbox Code Playgroud)