python - 什么是 Python 的良好磁盘 "set"实现?

标签 python data-structures set

我正在使用 Python 开发一个程序,该程序需要存储包含许多固定大小哈希值(SHA256,但这并不重要)的持久“集合”数据结构。关键操作是插入查找。常规操作不需要删除。该集合会随着时间的推移而增长,最终可能无法全部放入内存。

我考虑过:

  • 使用pickle 存储在磁盘上的集合(将新文件写入磁盘的速度较慢 [几秒钟],最终无法放入内存)
  • 一个 SQLite 数据库(附加依赖项默认不可用)
  • 自定义基于磁盘的平衡树结构,例如 B 树或类似结构

理想情况下,应该有一个内置的 Python 模块来提供可以支持这些操作的东西。这里有什么好的选择?

在我写完这篇文章后,我找到了Fast disk-based hashtables?其中有一些好主意。我喜欢那里的 mmap/bucket 接受的答案。

(如果您好奇的话,这是为了重写 shaback。)

最佳答案

另一种选择是使用 shelve ,我知道它和泡菜一样(在引擎盖下)但我认为这是一个不错的选择(我在你的选项列表中没有看到 :-))或者如果你不介意使用第三方库你可以看看shove (它就像一个架子++)。

关于python - 什么是 Python 的良好磁盘 "set"实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057198/

相关文章:

python - 写入 Oracle : TypeError: expecting string or bytes object

algorithm - 更新和查询数组 >= X 中的所有元素,其中 X 快速变化

ElasticSearch 类似集合(唯一值列表)的功能?

python - 在 Python 中跨多个文件使用和设置全局变量

python - Pandas 数据框中并发调用分数之间的差异

python - Windows shell %ERRORLEVEL% 变量是否有字符限制?

python - 您将什么称为允许持久操作的非持久数据结构?

database-design - 如何移动排序列表中的元素并保持 CouchDb 写入 "atomic"

java - Set Of Sets on contain 方法是否检查顺序?

python - list、tuple、dict底层数据结构