【发布时间】:2015-05-05 08:05:44
【问题描述】:
我很好奇 - 为什么sys.getsizeof 调用返回的列表数字小于其元素的总和?
import sys
lst = ["abcde", "fghij", "klmno", "pqrst", "uvwxy"]
print("Element sizes:", [sys.getsizeof(el) for el in lst])
print("Sum of sizes: ", sum([sys.getsizeof(el) for el in lst]))
print("Size of list: ", sys.getsizeof(lst))
以上印刷品
Element sizes: [42, 42, 42, 42, 42]
Sum of sizes: 210
Size of list: 112
怎么会?
【问题讨论】:
-
列表包含指针。这里的指针指向 4 个元素数组,但每个数组与主数组(视图)共享数据