猿问

Python和信息查找

存储和引用经常引用的静态信息的最佳方式是什么?目前,我有一本字典,其中每个键都与一个列表列表相关联。例如,


dict = {1:[[1,2,3], [1,2,3,4,5], [1,2,3,4,5,6]],

        2:[[2,3,4,5], [1,2,3,4,5,6], [1,2,3,4,5,6]]}

感兴趣的对象是一个单独的子列表,dict[1][1]在本例中它具有 value [1,2,3,4,5]。这些字典将具有一些冗余的子列表条目,例如,[1,2,3,4,5,6]可能多次显示为超级列表的第二个和第三个元素。


我需要将其扩展到第三层,或者通过将列表进一步嵌套一层或更可能,使键成为三元组。我什至可能想将感兴趣的对象变成一对列表,以便dict[1][1]可能有价值([1,2,3,4,5],['a','b','c'])。


我的问题是,使用 sqlite 表而不是字典更有意义吗?或者甚至可能是一些完全不同的存储格式:例如,是否有一种数据格式可以让不同的键指向相同的值?


白猪掌柜的
浏览 124回答 2
2回答

HUWWW

如果这些冗余子列表不需要是不同的对象(即它们始终保持不变),您可以直接指向它们以减少内存使用。如:a = [1, 2, 3]b = [1,2,3,4,5,6,7]my_dictionary = {1: [a, b, a, a], 2: [b, b, a]}就使用数据库而言,权衡不是在内存中保存大量数据;所以字典应该没问题,特别是如果您不需要永久使用这些数据(即使您需要,JSON 转储也可能很有用)。

Qyouu

使用字典来做到这一点很好。SQLlite 也可以。您还可以序列化为 JSON 对象或使用 REDIS 等 NOSQL 选项。有很多“最好”的选择,所有这些都有优点和缺点。此外,不同的字典键可以指向一个对象的同一个实例。
随时随地看视频慕课网APP

相关分类

Python
我要回答