与 C++ 或 Java 等其他编程语言不同,Python 没有内置支持数组的功能。然而,Python 有几个数据类型如列表和元组(尤其是列表),这些通常用作数组,但是存储在这些类型的序列中的项不必是同一类型。
此外,我们可以使用 array
模块来创建和操作数组。在进一步讨论之前,让我们先理解一下数组的基本概念。
什么是数组?
数组是一个容器,它可以持有固定数量的项,并且这些项应该属于相同的类型。存储在数组中的每个项被称为元素,它们可以是任何类型,包括整数、浮点数、字符串等。
这些元素存储在连续的内存位置。每个元素的位置都有一个从 0 开始的数值索引。这些索引用于识别和访问元素。
数组表示
数组表示为多个容器的集合,其中每个容器存储一个元素。这些容器从 '0' 到 'n-1' 进行索引,其中 n 是该特定数组的大小。
数组可以用不同的语言以各种方式进行声明。以下是示意图:
Python 数组表示
根据上面的图示,以下是重要的几点:
-
-
数组长度为 10,这意味着它可以存储 10 个元素。
-
可以通过其索引来访问每个元素。例如,我们可以获取索引为 6 的元素作为 9。
在 Python 中创建数组
要在 Python 中创建数组,需要导入 array
模块并使用它的 array()
函数。我们可以通过此函数创建三种基本类型,即整型、浮点型和 Unicode 字符的数组。
array()
函数接受类型码和初始化器作为参数值,并返回一个数组类的对象。
语法
在 Python 中创建数组的语法如下:
import array as array_name
obj = array_name.array(typecode[, initializer])
其中,
-
typecode
- 用于指定数组中元素类型的类型码字符。
-
initializer
- 初始化数组的可选值。它必须是一个列表、类似字节的对象或适当类型的可迭代元素。
示例
下面的示例展示了如何使用 array
模块在 Python 中创建数组。
import array as arr
a = arr.array('i', [1, 2, 3])
print(type(a), a)
a = arr.array('u', 'BAT')
print(type(a), a)
a = arr.array('d', [1.1, 2.2, 3.3])
print(type(a), a)
上述代码的输出如下:
<class 'array.array'> array('i', [1, 2, 3])
<class 'array.array'> array('u', 'BAT')
<class 'array.array'> array('d', [1.1, 2.2, 3.3])
Python 数组类型由单一字符类型码参数决定。类型码及其对应的数组数据类型如下表所示:
typecode |
Python 数据类型 |
字节大小 |
'b' |
有符号整数 |
1 |
'B' |
无符号整数 |
1 |
'u' |
Unicode 字符 |
2 |
'h' |
有符号整数 |
2 |
'H' |
无符号整数 |
2 |
'i' |
有符号整数 |
2 |
'I' |
无符号整数 |
2 |
'l' |
有符号整数 |
4 |
'L' |
无符号整数 |
4 |
'q' |
有符号整数 |
8 |
'Q' |
无符号整数 |
8 |
'f' |
浮点数 |
4 |
'd' |
浮点数 |
8 |
Python 数组的基本操作
以下是数组支持的基本操作:
访问数组元素
我们可以使用元素的索引来访问数组中的每个元素。
示例
下面的代码展示了如何访问数组中的元素。
from array import *
array1 = array('i', [10, 20, 30, 40, 50])
print(array1[0])
print(array1[2])
当编译和执行上述程序时,会产生以下结果:
10
30
插入操作
在插入操作中,我们向数组中插入一个或多个数据元素。根据需求,新的元素可以在数组的开头、结尾或任何给定索引处添加。
示例
这里,我们使用 Python 内置的 insert()
方法在数组中间插入一个数据元素。
from array import *
array1 = array('i', [10, 20, 30, 40, 50])
array1.insert(1, 60)
for x in array1:
print(x)
当编译和执行上述程序时,会产生以下结果,显示元素已在索引位置 1 处插入。
10
60
20
30
40
50
删除操作
删除操作是指从数组中移除现有的元素并重新组织数组中的所有元素。
示例
这里,我们使用 Python 内置的 remove()
方法移除数组中间的数据元素。
from array import *
array1 = array('i', [10, 20, 30, 40, 50])
array1.remove(40)
for x in array1:
print(x)
当编译和执行上述程序时,会产生以下结果,显示元素已被移除。
10
20
30
50
搜索操作
可以在数组上执行搜索操作以基于其值或索引查找数组元素。
示例
这里,我们使用 Python 内置的 index()
方法搜索数据元素。
from array import *
array1 = array('i', [10, 20, 30, 40, 50])
print(array1.index(40))
当编译和执行上述程序时,如果值不在数组中,则会显示错误,否则显示所查元素的索引。
3
更新操作
更新操作指的是在给定索引处更新数组中的现有元素。这里,我们只需重新分配一个新值到我们想要更新的所需索引即可。
示例
在此示例中,我们将更新索引 2 处的数组元素的值。
from array import *
array1 = array('i', [10, 20, 30, 40, 50])
array1[2] = 80
for x in array1:
print(x)
执行上述程序后,会产生以下结果,显示索引位置 2 处的新值。
10
20
80
40
50