如何用内存高效的数据结构替换大型 python 字典?

Posted

技术标签:

【中文标题】如何用内存高效的数据结构替换大型 python 字典?【英文标题】:How to replace large python dictionary with a memory efficient data structure? 【发布时间】:2021-08-29 03:21:52 【问题描述】:

我使用 python 字典存储键值对,但字典变得太大 (>100GB) 并达到内存限制。

在python中存储键值对的内存效率更高的数据结构是什么? 例如。我们可以使用生成器来替换列表

【问题讨论】:

【参考方案1】:

您可以使用 sqlitedict,它为 SQLite 数据库提供键值接口。关于内存使用。 SQLite 不需要你的数据集来适应 RAM。默认情况下,它最多缓存 2MB 的 cache_size 个页面。

【讨论】:

【参考方案2】:

也许这会有所帮助:https://github.com/dagnelies/pysos

它只将索引保存在内存中,将数据保存在磁盘上。

【讨论】:

以上是关于如何用内存高效的数据结构替换大型 python 字典?的主要内容,如果未能解决你的问题,请参考以下文章

基础入门:如何用自然语言分析大型数据集?

如何用dict pandas python替换分组数据框

如何用一个值替换多个值python

如何用python中的方程替换数据框中的缺失值

如何用 Promise.all 替换多个 async/await 调用?

如何用熊猫(python)中的其他值替换NAN [重复]