【问题标题】:Python and information lookupPython 和信息查找
【发布时间】:2023-03-31 10:39:01
【问题描述】:

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

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],在本例中其值为[1,2,3,4,5]。这些字典会有一些冗余的子列表条目,例如,[1,2,3,4,5,6] 可能会多次显示为超级列表的第二个和第三个元素。

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

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

【问题讨论】:

    标签: python sqlite dictionary


    【解决方案1】:

    如果这些冗余子列表不需要是不同的对象(即,它们将始终保持不变),您可以指向它们以减少内存使用。如:

    a = [1, 2, 3]
    b = [1,2,3,4,5,6,7]
    my_dictionary = {1: [a, b, a, a], 2: [b, b, a]}
    

    就使用数据库而言,权衡是不在内存中保存大量数据;所以字典应该没问题,特别是如果您不需要永久需要这些数据(即使需要,JSON 转储也很有用)。

    【讨论】:

      【解决方案2】:

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

      另外,不同的字典键可以指向一个对象的同一个实例,你可以在这里找到一个例子How do I make a dictionary with multiple keys to one value?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-17
        • 1970-01-01
        • 2020-11-05
        • 2012-10-19
        • 2013-05-09
        • 2012-11-21
        • 2012-11-18
        相关资源
        最近更新 更多