If you want to find or measure the size of memory a data structure or objects occupies, try the function below.
import sys def get_size(obj, seen=None): """Recursively finds size of objects""" size = sys.getsizeof(obj) if seen is None: seen = set() obj_id = id(obj) if obj_id in seen: return 0 # Important mark as seen *before* entering recursion to gracefully handle # self-referential objects seen.add(obj_id) if isinstance(obj, dict): size += sum([get_size(v, seen) for v in obj.values()]) size += sum([get_size(k, seen) for k in obj.keys()]) elif hasattr(obj, '__dict__'): size += get_size(obj.__dict__, seen) elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)): size += sum([get_size(i, seen) for i in obj]) return size print(get_size(list(range(100)))) print(get_size(list(range(1000)))) print(get_size([[ i for i in range(10)] for j in range(100)])) print(get_size([[ i for i in range(100)] for j in range(10)])) ----- 3804 37108 20388 12108