存儲和引用經常引用的靜態信息的最佳方式是什么?目前,我有一本字典,其中每個鍵都與一個列表列表相關聯。例如,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
提交
取消