我在使用datetime作为dict键时遇到问题。我的目标是从一个包含日期时间的数据源引入信息,然后在字典中查找并返回输入日期时间后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,并返回所有存在的值。
我的主要问题是无法预测dict日期时间或输入日期时间,所以我不确定是否可以返回dict中一系列键的值,而不是按排序顺序循环键的索引。对所有键执行for循环在这里是不有效的,因为要查看的键的数量——我已经通过尽可能多地消除重复数据并只引入最小数量的引用数据来减少此列表。
另一个项目是,我的输入将是100000个要查找的日期时间,其中许多日期时间彼此相差几分钟、几秒或几小时,因此减少查找次数和循环将是保持运行时关闭的必要条件。
如果这不是一个完整的代码可以看的很好的问题,我很抱歉,但我基本上不确定从哪里开始这个问题,所以我认为它不会帮助任何人把任何其他东西,除了输入和输出目标字典。