How can I find all datetimes in a list within n minutes of a given value?(如何在一个列表中找到距给定值n分钟内的所有日期时间?)
问题描述
我有两个时间列表(小时:分钟:秒格式),我一直在努力将list_a
中的每个条目与list_b
中的所有条目进行比较,以确定落入30分钟内的值:
预期输出:
到目前为止,我一直在做的是:
这种方法有效,但它只找到一个最接近的值!只要值在所需的30分钟或更短时间内,我如何操作min()函数来继续提供这些值?
推荐答案
IIUC,您想要比较所有组合,所以需要全部选中。
请阅读datetime
/timedelta
上的注释的答案末尾。
使用itertools.product
:
输出:
使用嵌套的for循环:
输出:
datetime
备注
使用不带日期的datetime
将默认为1900-01-01,这可能会在接近午夜时产生边缘效果。相反,您可以使用timedelta
对象。在我的代码中,您需要将str2time
函数更改为:
并稍微更改代码以能够转换为字符串:
这篇关于如何在一个列表中找到距给定值n分钟内的所有日期时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!