存储和引用经常引用的静态信息的最佳方式是什么?目前,我有一本字典,其中每个键都与一个列表列表相关联。例如,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 表而不是字典更有意义吗?或者甚至可能是一些完全不同的存储格式:例如,是否有一种数据格式可以让不同的键指向相同的值?
2 回答
HUWWW
TA贡献1874条经验 获得超12个赞
如果这些冗余子列表不需要是不同的对象(即它们始终保持不变),您可以直接指向它们以减少内存使用。如:
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
TA贡献1786条经验 获得超11个赞
使用字典来做到这一点很好。SQLlite 也可以。您还可以序列化为 JSON 对象或使用 REDIS 等 NOSQL 选项。有很多“最好”的选择,所有这些都有优点和缺点。
此外,不同的字典键可以指向一个对象的同一个实例。
添加回答
举报
0/150
提交
取消