【发布时间】:2018-09-25 07:47:03
【问题描述】:
我在使用 DateTime 作为字典键时遇到了问题。我的目标是从一个包含 Datetime 的数据源中引入信息,然后在字典中查找并返回输入 DateTime 的 2 天内 +- 内的键的所有值。
例如,我的输入是:
datetime.datetime(2018, 9, 20, 12, 48)
我要参考的字典是:
example = {datetime.datetime(2018, 9, 20, 14, 43):'A', datetime.datetime(2018, 9, 18, 19, 41):'B', datetime.datetime(2018, 9, 15, 9, 12):'C'}
在这种情况下,我会返回:A, B
我考虑过对字典进行排序,然后为奇数日期创建一个索引字典,然后输入我的输入日期,计算输入日期的基准日期 +- 2,引用索引字典,然后使用这些索引仅在索引之间循环引用字典并返回所有存在的值。
我的主要问题是我无法预测 dict 日期时间或输入日期时间,所以我不确定是否可以返回 dict 中一系列键的值,而不是通过索引循环按排序顺序排列的键。在这里为所有键执行 for 循环效率不高,因为要查看的键数量 - 我已经通过尽可能多地删除重复数据并仅引入最少量的参考数据来减少此列表。
另一项是我的输入将是 100,000 个要查找的日期时间,其中许多将彼此相隔几分钟、几秒钟或几小时,因此减少查找次数和 for 循环对于保持运行时下降。
如果这不是一个需要查看完整代码的正确问题,我深表歉意,但我基本上不知道从哪里开始处理这个问题,所以我认为这对任何人都没有帮助,除了具有输出目标的示例输入和字典。
【问题讨论】:
-
你考虑过使用 SQL 数据库吗?
-
很遗憾我不能使用 SQL 数据库,我受限于我展示的数据模型。
标签: python python-2.7 datetime dictionary