为什么此代码片段使用两个不同的函数给出不同的字节大小。我正在使用 32 位版本的 python 2.7.3
1)用字典: -
from sys import getsizeof
l = range(20)
d = {k:v for k,v in enumerate(l)} #creating a dict
d.__sizeof__() #gives size in bytes
508 #size of dictionary 'd' in bytes
getsizeof(d)
524 #size of same dictionary 'd' in bytes (which is different then above)
2)与列表: -
from sys import getsizeof
l = range(20)
l.__sizeof__()
100 #size of list 'l' in bytes
getsizeof(l)
116 #size of same list 'l' in bytes
3) 使用元组:-
from sys import getsizeof
t = tuple(range(20))
t.__sizeof__()
92 #size of tuple 't' in bytes
getsizeof(t)
108 #size of same tuple 't' in bytes
当两个函数的文档都说它们以字节为单位返回对象的大小时,有人会告诉我为什么会出现这种行为。