Why is this piece of code giving different sizes in bytes with two different functions. I am using 32-bit version of python 2.7.3
1) with dictionaries: -
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) with the list: -
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) with a tuple: -
from sys import getsizeof t = tuple(range(20)) t.__sizeof__() 92
Someone will tell me why this behavior when the documentation of both functions says that they return the size of the object in bytes.
source share