Python中列表与数组的区别

Python原生没有数组的概念,这点不同于Java之类的面向对象语言。Python中原生的列表使用起来很像数组,但是两者有本质的区别

Python是一门动态语言,在Python列表的创建中,不需要指定数据类型,而且不需要指定列表的长度—因为Python中的列表是通过链表的形式实现的;相对应的,数组的特点是必须在创建的时候声明它的数据类型,而且必须指定数组的长度

#列表与数组的区别

内存地址

  • 列表中的所有元素的内存地址可以不是连续的,它是通过每个元素记录它的上一个元素的内存地址和记录它下一个元素的内存地址来排列的
  • 数组是一个连续的内存空间,每一个元素都按照先后顺序排列在内存当中

数据类型

  • Python中的列表可以放任意类型的对象,这个特性是Python赋予的,不是链表本身的特性
  • 数组一旦声明数据类型,之后放入每个的元素必须都是这个数据类型的对象,如果不是,就会抛出异常

Python中使用到数组的场景

  • from multiprocessing import Array