数组如何存储?
数组底层的存储结构是顺序存储结构,这样的结构有一些优点:
- 逻辑上相邻的节点在物理位置上也是相邻的,可以节省空间,并且可以实现随机存取(也称直接访问)。
- 创建一个数组时,会在内存中开辟一块固定长度的区域用于直接存储元素,扩容要考虑这块区域的后面是否有存储其他对象,所以数组在定义好之后就无法扩容了。而且在查询时,是根据索引和元素存储大小去计算地址偏移量的,如果元素类型不一致,所占内存空间不相同,就不能实现随机存储,所以数组不能同时存储不同类型的数据;
列表如何存储?
列表本质是动态的数组,列表存储的是每个元素在内存中的地址(即引用),
当列表中空白占位低于1/3时,会在内存中开辟一块更大的空间,并将旧列表中存储的地址复制到新列表中,旧列表则被销毁,这样就实现了扩容。
因为列表存储的是元素的引用这个特性,而引用所占的内存空间是相同的,这样便可以同时存放不同类型的数据了。
Python中的列表与数组的区别在于:
- 数组定义好之后就无法扩容了,而列表在定义好之后可以扩容;
- 数组只能同时存储一种类型的数据,而列表可以同时存储不同类型的数据。
字典如何存储?
P