【发布时间】:2012-12-03 19:24:05
【问题描述】:
即让您可以像在数据库中一样高效地访问和更新数据。
我的具体情况如下:
我有一个非常大的蒙特卡洛模拟+优化,数据被分类到几个字典中,每个字典有 600k+ 元组键,格式如下:
simple_dictionary[(year, month, day, hour, minute)] = value_or_small_list_or_small_numpy_array
事实证明,上面的内容实际上比嵌套字典要慢一些:
simple_dictionary[year][month][day][hour][minute] = value_or_small_list_or_small_numpy_array
这让我相信——如果我错了,请纠正我——后一种格式检查的键比前一种格式少。这个假设是基于我的代码(太长而无法发布)。我的代码在__init__ 之后没有创建新的键,但每次迭代至少调用一次每个键/值对。但是,并非所有值都会更新。
假设这可以/应该从 RAM 运行,是否有比上述代码更有效的替代方法?
【问题讨论】:
-
这里的“检查更少的键”是什么意思?
-
对不起,我的知识相当有限,因为我不是计算机科学家,但我认为 Python 必须先进行一些内部处理才能知道数据在 RAM 中的确切位置。
标签: python performance optimization python-2.7 dictionary