假设我在Python中有两个列表:
a = [1]
和b = [1,1]
(语言无关,列表中的对象也无关)。
我的问题是:哪一个占用了更多的内存空间,为什么?出现这个问题是因为,据我所知,两个列表都包含具有相同内存地址的对象:
id(b[0]) == id(b[1]) # True
。那么,这种大小差异会出现在哪里呢?
我之前问过类似的问题,但它的表述很笨拙,我没有得到预期的答案。
包含 2 个元素的列表会占用更多空间,因为您需要存储两个值而不是只存储一个值。然而,在您的示例中,“b[0]”和“b[1]”的 id 是相同的,因为值相同,因此 python 不会单独存储它们。如果你尝试使用不同的数字,你会得到不同的 id。
示例:
b = [1,2]
print(id(b[0]))
print(id(b[1]))
输出:
140090491600648
140090491600680