You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效过滤datetime列表,仅保留每小时前10分钟数据?

高效筛选每个小时前10分钟的时间戳

直接利用Python datetime 对象的 minute 属性做线性过滤是最简洁高效的方案,无需分组、排序这类额外操作,时间复杂度仅为O(n)(n为原列表长度)。

核心代码

假设你的时间戳列表名为 timestamps,一行代码就能完成筛选:

filtered_timestamps = [dt for dt in timestamps if dt.minute < 10]

原理说明

每个 datetime.datetime 实例自带 minute 属性,直接判断该属性是否小于10即可:

  • 若 dt.minute < 10,说明该时间属于当前小时的前10分钟(0分~9分59秒999999),符合保留条件
  • 反之则剔除

对比原方案的优势

你原本的分组排序方案需要额外的分组逻辑和排序操作,时间复杂度至少为O(n log n)(排序的开销),而线性过滤仅需遍历一次列表,代码更简洁,执行效率也更高。

示例验证

用你给出的示例数据测试:

import datetime

timestamps = [
    datetime.datetime(2019, 6, 14, 14, 8, 23, 493000),
    datetime.datetime(2019, 6, 14, 14, 25, 23, 493000),
    datetime.datetime(2019, 6, 21, 20, 45, 23, 868000),
    datetime.datetime(2019, 6, 21, 20, 5, 23, 993000)
]

filtered_timestamps = [dt for dt in timestamps if dt.minute < 10]
# 输出结果:
# [datetime.datetime(2019, 6, 14, 14, 8, 23, 493000), datetime.datetime(2019, 6, 21, 20, 5, 23, 993000)]

内容的提问来源于stack exchange,提问作者M.Tailleur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:55:25