当前位置: 首页 > 面试题库 >

*大型*带有持久性存储的python字典,用于快速查找

松茂实
2023-03-14
问题内容

我有4亿行唯一的键值信息,我希望这些信息可用于在脚本中进行快速查找。我想知道这样做的巧妙方法。我确实考虑了以下内容,但不确定是否有一种方法可以对字典进行磁盘映射,并且在字典创建过程中无需使用大量内存。

  1. 腌字典对象:不确定这是否是我的问题的最佳解决方案
  2. NoSQL类型dbases:理想情况下,它希望对第三方东西的依赖性最小,并且键值只是数字。如果您仍然认为这是最佳选择,我也想听听。也许它将说服我。

如果有任何不清楚的地方,请告诉我。

谢谢!-阿比


问题答案:

如果要保留大型词典,则基本上是在查看数据库。

Python内置了对sqlite3的支持,这为您提供了一个由磁盘文件支持的简单数据库解决方案



 类似资料:
  • 问题内容: 通过Swift编程语言,我惊讶地发现,与结构和枚举不同,类不支持存储的类型属性。 这是其他OO语言的共同特征,因此我认为有充分的理由他们决定不允许它。但是我无法猜测出这个原因是什么,尤其是由于结构(和枚举)拥有它们。 难道仅仅是Swift的早期开发,还没有实现吗?还是在语言设计决策背后有更深层的原因? 顺便说一句,“存储类型属性”是Swift术语。在其他语言中,这些可能称为类变量。示例

  • 问题内容: 我习惯于使用.csv文件将数据导入和导出Python,但这存在明显的挑战。关于在json或pck文件中存储字典(或字典集)的简单方法有何建议?例如: 我想知道如何保存此内容,然后如何将其重新加载。 问题答案: 泡菜 保存: 有关该参数的其他信息,请参见pickle模块文档。 酸洗 负荷: JSON 保存: 提供额外的参数,例如或以获得漂亮的结果。参数 sort_keys 将按字母顺序对

  • 我正在寻找从经典Akka持久化迁移到Akka持久化类型。在这里找到的Lagom留档:1说“注意:从Lagom持久化(经典)迁移到Akka持久化类型时的唯一限制是需要完全关闭集群。即使所有持久数据都是兼容的,Lagom持久化(经典)和Akka持久化类型也不能共存。” 有人知道这是否适用于服务器可能知道的所有持久实体吗?例如,我使用的服务有3个独立的持久实体。我需要一次迁移所有3个,还是可以一次迁移一

  • 问题内容: 如果我将大目录存储为文件,是否通过加载将其全部消耗到内存中? 如果是这样,是否有一种跨平台的方式来获取类似的信息,但是在一项中访问每个条目一个键(即避免将所有字典加载到内存中,而仅按名称加载每个条目)?我知道应该这样做:好像一样便携吗? 问题答案: 我知道应该这样做:虽然像泡菜一样轻巧? 是。是Python标准库的一部分,是用Python编写的。 编辑 因此,如果您有大型词典: 而且您

  • 问题内容: 我发现如果在开始时初始化一个空字典,然后在for循环中向字典中添加元素(大约110,000个键,每个键的值是一个列表,并且在循环中也在增加),则速度会降低循环。 我怀疑问题在于,字典在初始化时不知道键的数量,并且执行的操作也不是很聪明,因此存储冲突可能会变得很频繁并且会减慢速度。 如果我知道键的数量以及这些键的确切含义,python中有什么方法可以使字典(或哈希表)更有效地工作?我隐约

  • 最近我发现了一个像Apache Mesos这样的东西。 在所有演示和示例中,这一切看起来都令人惊讶。我可以很容易地想象一个人将如何竞选无状态的工作--这自然符合整个想法。 3-请告诉我的方法在哲学方面是否是错误的(数据服务器的DFS和Mesos顶部的postgres之类的服务器的某种切换) 问题主要是从Apache Mesos的持久存储中复制的,由程序员堆栈交换上的zerkms提出。