以下是示例数据:
{
"a":"05:32",
"b":"12:15",
"c":"15:42",
"d":"18:23"
}使用此数据:我希望获得与当前时间最接近的下一个值。因此,如果现在是15:30,那么查询应该返回c。
我试着用for循环来做这件事,但似乎效率不是很高。
发布于 2021-04-04 00:32:06
您可以将min与自定义密钥函数一起使用:
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)输出:
c通常,您可以用来自datetime.datetime.now的结果替换t2 = [15, 30] (仅用于演示目的
from datetime import datetime
def closest(c, t2 = [(n:=datetime.now()).hour, n.minute]):
...https://stackoverflow.com/questions/66933234
复制相似问题