首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数据中获取最近的时间

从数据中获取最近的时间
EN

Stack Overflow用户
提问于 2021-04-04 00:06:32
回答 1查看 26关注 0票数 1

以下是示例数据:

代码语言:javascript
复制
{
   "a":"05:32",
   "b":"12:15",
   "c":"15:42",
   "d":"18:23"
}

使用此数据:我希望获得与当前时间最接近的下一个值。因此,如果现在是15:30,那么查询应该返回c。

我试着用for循环来做这件事,但似乎效率不是很高。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-04 00:32:06

您可以将min与自定义密钥函数一起使用:

代码语言:javascript
复制
d = {'a': '05:32', 'b': '12:15', 'c': '15:42', 'd': '18:23'}
def closest(c, t2 = [15, 30]):
   a, b = map(int, d[c].split(':'))
   return abs((t2[-1]+60*t2[0]) - (b+60*a))       

new_d = min(d, key=closest)

输出:

代码语言:javascript
复制
c

通常,您可以用来自datetime.datetime.now的结果替换t2 = [15, 30] (仅用于演示目的

代码语言:javascript
复制
from datetime import datetime
def closest(c, t2 = [(n:=datetime.now()).hour, n.minute]):
    ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66933234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档