本文主要介绍了python之关于数组和列表的区别及说明,具有很好的参考价值,希望对大家有所帮助。
python数组和列表的区别
列表和数组的定义
- 列表用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。
- 数组是一个同一类型的数据的有限集合。
数组是什么?
数组(Array)是一种线性表数据结构。它用一组连续的内存,来存储一组具有相同类型的数据。
- 优点:数组地址是连续的会给我们查找数据提供了极大的方便,让我们很容易的就能根据下标找到你需要的数据,提高了查询效率
- 缺点:毕竟我们对数组的运用不只是查找数据,还有增加数据,插入数据,删除数据等一些操作;由于数组的特殊性,使得我们在进行这些操作的时候不能对其进行直接操作,还要重新开辟一个新的数组并使其长度增加来存放数据,这样的工作模式给我们带来了很大的不便,影响了效率
**用线性表存储的数据有两个特点
- 存储的数据本身的类型一定保持相同,是int型就都是int型,是结构体就都是一种结构体。
- 数据一旦用线性表存储,各个数据元素之间的相对位置就固定了。
形象地来看,线性表就是数据排成像一条线一样的结构,并且最多只有前和后两个方向。数组、链表队列、栈等都是线性表结构。
与其对立的概念是非线性表,如二叉树、堆等。在非线性表中,数据之间并不是简单的前后关系。
将列表当做堆栈使用
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。
用 append() 方法可以把一个元素添加到堆栈顶。
用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
将列表当作队列使用
也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;但是拿列表用作这样的目的效率不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
相同点:
- 都可以根据索引来取其中的元素;
不同点:
- 列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;
- 列表list不可以进行数学四则运算,数组array可以进行数学四则运算;
- 相对于array,列表会使用更多的存储空间。
1 2 3 4 5 6 7 8 |
|
python数组和列表相互转化
- 数组转化为列表:b=array.tolist() (把数组array转化为列表b)
- 列表转化为数组:a=np.array(list) (把列表lis转化为数组a)
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
以上为个人经验,希望能给大家一个参考,也希望可以帮到大家。