import sys
a=[]
print(sys.getsizeof(a))
id(a)
#56
#2874643633536
for i in range(100):
a.append(i)
print(sys.getsizeof(a))
id(a)
#904
#2874643633536
创建一个列表,其id内存地址会指向储存这个列表的内存空间。为什么列表扩容,申请新的内存空间后,内存地址不会改变呢?这个内存地址增大了不就不是原来的内存空间了嘛?其内存地址不应该有所变化来体现?基础薄弱,求解~
你问题问得很好。等等我给你解释,这里涉及到内存碎片。
你只是增加列表内容而已,没有删除或新建,因此位置不变,但是内存占用增大。应该是这样理解。
python变量应该理解成为别名,变量保存的是引用。