龙空技术网

Python语言中使用array模块实现动态数组的操作

编码那些事 339

前言:

此刻我们对“python中array的用法”大致比较关心,我们都需要了解一些“python中array的用法”的相关内容。那么小编在网摘上网罗了一些对于“python中array的用法””的相关资讯,希望咱们能喜欢,姐妹们快快来学习一下吧!

背景

对于动态数组诸如创建、插入、删除、查询大小等操作,在C/C++语言中,可以使用标准库中的vector类实现,而在python语言中,也同样提供了内置的array模块实现类似的功能。

Python中的array类似于列表list,如都可以动态增删元素,但又有所区别,list中存储的元素类型可以不一样,但array中元素类型必须完全一样。另外,由于list中每个元素同时存储了其地址即指针(用以标记每个元素的数据类型)和实际的数据,所以,在存储及操作效率上,array又远远高于列表。

下面通过例子讲解array模块的常用操作。

动态数组的创建

创建方式为:array.array(typecode[, initializer]),第1个参数typecode定义了数组元素的类型,第2个可选参数给出了数组中的初始值。如下面的代码创建了一个int型的包含3个元素的数组x,其初始值为分别为1、2、3。其索引方式同列表类似,下标从0开始,如x[1]代表取数组x中的第2个元素。

import array

x = array.array(‘i, [1, 2, 3]

在数组的定义中,数组元素的类型通过一个字符typecode参数指定,它的取值情况如下表所示:

动态数组的常用操作

1、数组元素的增加

x.append(2)

x.extend([5, 1]

x.insert(3, 9)

其中,append在数组的末尾增加一个元素,extend在数组的末尾增加多个元素,insert(i, x)在指定位置i处增加一个元素。

2、数组元素的删除

x.pop()

x.pop(1)

x.remove(3)

其中,pop(i)删除第i个元素,当参数为空时,删除最后一个元素。remove(x),删除第一个出现的x值。

3、数组的其它操作

x.typecode #返回当前数组的元素类型

x.itemsize #返回当前数组中每个元素的字节大小

x.buffer_info() #返回包含2个元素的一个元组,第1个是数组的内存地址,第2个是数组中元素的个数

x.count(3) #统计数组中3出现的次数

x.index(3) #返回数组中3第一次出现的位置

x.byteswap() #对数组中的每个元素进行字节高、低位交换

x.reverse() #对数组中的元素逆序排列

备注

数组array模块的操作函数同列表list类似,但是其运行及存储效率要远远高于列表list,这在动态数据的采集场合是用的比较多的。这儿只给出了该模块的一些常用操作,还有其它的一些函数,大家可以自行查看帮助,比较简单。本文的完整例子代码如下:

运行结果如下图所示:

欢迎加关注,共同交流。

标签: #python中array的用法