区别主要有三点:
- 空间效率
C语言中,创建数组时,首先需要指定数组的容量大小,根据大小来分配内存,也就是说,即使要在数组中存储一个元素,也需要为所有的元素预先的分配内存。故,C语言中数组的空间效率不高。
Python中,列表list属于其的一个高级特性,是对源码中对象(PyListObject)的一个抽象,而因为不同的list存储元素的个数不同,故这里的PyListObject再创立之初就被设置为变长对象。并且,该对象中内置了像插入、删除等方法,可以在运行时动态的调整维护的内存和元素
总结:C语言数组相较Python List空间效率低,灵活性较差 - 长度
C语言中,除了动态数组以外,数组都是不可变的。
Python中,对象中封装了插入、删除等方法,所以List是可变的。 - 数据类型
C语言中,数组中的元素只能是同一种类型,在数组初始化时已经确定。
Python中,数组中的元素可以是不同的类型。
接下来回答第二个问题,相比于list,数组岂不是更像tuple?
数组中的元素可以改变,同时,list底层实现对象中也封装了插入删除等操作,而tuple中的元素一经创建,不可修改,和数组的特性不符。