假设我有1000个同一个类的不同对象被实例化,我将它分配给一个字典,其字符串为1到1000之间的整数,其值为1000个对象。
现在,我创建了另一个字典,其键是元组(obj1,1),(obj2,2)等。对象是相同的1000个对象。其值为1到1000。
这两个字典的存在是否意味着内存使用量会翻倍,因为每个字典的键和值都有1000个对象?
他们不应该,对吧?因为我们不是在创建新对象,所以我们只是分配对这些对象的引用。因此,我可以将1000个类似的字典与这些对象一起作为值或键(元组的一部分),并且内存使用量没有显着增加。
是吗?
答案 0 :(得分:1)
不会复制对象,但会引用它们。
如果您的对象很小(例如整数),则元组或字典列表的开销很大。
如果您的对象很大(例如非常长的唯一字符串),与对象的大小相比,开销要小得多,因此由于创建了相同对象的另一个dict /列表,内存使用量不会增加太多