为了账号安全,请及时绑定邮箱和手机立即绑定

Python和信息查找

Python和信息查找

白猪掌柜的 2023-07-11 15:58:42
存储和引用经常引用的静态信息的最佳方式是什么?目前,我有一本字典,其中每个键都与一个列表列表相关联。例如,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 转储也可能很有用)。


查看完整回答
反对 回复 2023-07-11
?
Qyouu

TA贡献1786条经验 获得超11个赞

使用字典来做到这一点很好。SQLlite 也可以。您还可以序列化为 JSON 对象或使用 REDIS 等 NOSQL 选项。有很多“最好”的选择,所有这些都有优点和缺点。

此外,不同的字典键可以指向一个对象的同一个实例。

查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信