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

Python根据字符串时间戳查询15分钟间隔字典列表的对应charmany值

15分钟区间匹配查询实现方案

核心逻辑:将所有时间字符串转为datetime类型后,把分钟数向下取整到最近的15的倍数,秒、微秒清零,得到对应15分钟区间的起始时间,再匹配对应charmany值即可。

推荐方案(预处理后O(1)查询,适合数据量大的场景)

先一次性预处理字典列表生成时间到charmany的映射表,后续每次查询直接取值,效率更高。
完整代码示例:

from datetime import datetime

# 统一时间格式模板
TIME_PATTERN = "%Y-%m-%d %H:%M:%S"

# 预处理生成查询映射
time_to_charmany = {}
for item in dict_df:
    # 转换时间块为datetime对象
    block_time = datetime.strptime(item["Time Block"], TIME_PATTERN)
    # 对齐到15分钟区间起始(自动处理原时间块的秒级误差)
    aligned_min = (block_time.minute // 15) * 15
    block_start = block_time.replace(minute=aligned_min, second=0, microsecond=0)
    time_to_charmany[block_start] = item["charmany"]

# 查询函数
def query_charmany(target_time_str: str):
    target_time = datetime.strptime(target_time_str, TIME_PATTERN)
    # 计算待查时间所属的15分钟区间起始
    aligned_min = (target_time.minute // 15) * 15
    target_start = target_time.replace(minute=aligned_min, second=0, microsecond=0)
    # 匹配返回结果,无匹配时返回None,可按需修改默认值
    return time_to_charmany.get(target_start)

# 测试用例
find_this_payload = '2021-08-19 07:49:00'
print(query_charmany(find_this_payload)) # 示例输出:1

简易方案(无预处理,适合小数据量场景)

如果数据量很小,不需要考虑查询效率,可以每次查询时直接遍历列表匹配:

from datetime import datetime

TIME_PATTERN = "%Y-%m-%d %H:%M:%S"

def query_charmany_simple(target_time_str: str):
    target_time = datetime.strptime(target_time_str, TIME_PATTERN)
    aligned_min = (target_time.minute // 15) * 15
    target_start = target_time.replace(minute=aligned_min, second=0, microsecond=0)
    for item in dict_df:
        block_time = datetime.strptime(item["Time Block"], TIME_PATTERN)
        block_aligned_min = (block_time.minute //15)*15
        block_start = block_time.replace(minute=block_aligned_min, second=0, microsecond=0)
        if block_start == target_start:
            return item["charmany"]
    return None

内容的提问来源于stack exchange,提问作者bbartling

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:48:01