最近学习了python数据结构,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用



一 C数组在内存中的存储

开辟一块连续的指定大小的空间来存储指定类型的数据。
浅谈Python数据结构(一)--列表
假设数组的首地址为50,每个浮点数占8个字节

那么在查找的时候:

a[2] = 50 + 2 * 8

二 Python列表与C数组的不同

(1)列表的元素是不固定类型的

(2)列表是不固定长度的

三 Python的列表是怎样实现的

(1)列表中存储的是地址,而不是存储具体数据,地址指向具体的数据

(2)在超出列表容量实现自动扩容,实现过程是重新建立一个大容量的列表,复制以前列表的数据后把原列表销毁

四 Python列表常见操作的时间复杂度

简单的从算法的角度考虑:

  • Append():O(1)

  • Pop():O(1)

  • Insert(i):O(n)

  • Remove(val):O(n)

五 64位和32位机器的区别

比如32位机器

  • 运算器一次最多可以处理32位数据

  • 寄存器最大宽度32

  • 寄存器和运算器之间的通路为32位

如下面的16位机器,运算器和寄存器之间通路为16位。寄存器最大宽度为16位,运算器一次最多处理16位数据。

浅谈Python数据结构(一)--列表
我们需要知道的是:

(1)64位比32位拥有更大的寻址能力,处理运算能力更好

(2)常见的数据类型占用的字节数

浅谈Python数据结构(一)--列表


六 总结

如有错误恳请指正,如有侵权请联系我删除
参考文章: 64位机器与32位机器的区别 

相关文章: