You’re using id() on wrapper objects, that are created on the fly. E.g. when you do a[100000] you get a new object that shares storage with “a”, but also records storage offset. Repeated call a[100000] creates a new wrapper, as it is impossible to cache these.