即允许您像在数据库中一样高效地访问和更新数据。
我的具体情况如下:
我有一个非常大的蒙特卡洛模拟+优化,数据被分类到几个字典中,每个字典有 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 运行,是否有比上述代码更高效的替代方案?
最佳答案
您是否考虑过尝试内存中 sqlite3数据库?这将是您所能得到的“类似于数据库”,并且全部都在内存中。 :)
使用连接字符串 :memory:
为您提供内存数据库。
关于Python:是否有使用多个键的优化字典类型(类似于数据库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690214/