python - 将时间列表与时间范围列表相交的最佳方法

标签 python

基本上我所拥有的是:

secondData = [["8:33:00", 5], ["8:33:01", 3], ...] # and so forth
minuteData = [["8:33:00", 6], ["8:34:00", 5], ...] # and so forth

现在假装时间是一个实际的日期时间对象

我想要做的是找到最有效的方法来迭代分钟数据并获取该分钟所有包含的第二个数据。例如如果我有“8:34:00”我想要“8:34.00”..“8:34:59”。有没有一种简单的方法可以为此或其他内容制作列表过滤器?

我应该注意,列表是按时间顺序排列的,但是可能会丢失第二个数据。例如,我可能只有 9:58 分钟的 33 个数据点。

最佳答案

使用bisect .

from bisect import bisect_left
secondData[bisect_left(secondData, "8:33:00"):bisect_left(secondData, "8:34:00")]

这将为您提供半开区间 ["8:33:00".."8:34:00") 的 secondData 切片。

关于python - 将时间列表与时间范围列表相交的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211816/

相关文章:

python - 如何在 SQLAlchemy 中保存计算列?

python - 在 Python 2.7 中使用带有 mysql.connector 的参数化查询

python - 使用 Python3 C API 添加到内置函数

python - celery 随机丢失任务

python - 使用传递的参数作为 django 中查询字符串中的值

python - 如何将我用pygame制作的游戏发送给其他人?

python - numpy.float64' 对象在 auc 中不可调用(召回率,精度)

python - pipfile 可编辑包位置

python - 比较数据框两列中的相同和不同

python - 如何使用 1 个以上 GPU 训练 PyTorch 迁移学习教程