Python - 数组
Python 中的数组
与其他编程语言如 C++ 或 Java 不同,Python 没有内置的数组支持。然而,Python 有几种数据类型如 list 和 tuple(特别是 list),它们经常被用作数组,但存储在这些序列类型中的项目不必是相同类型。
此外,我们可以使用 array 模块来创建和操作数组。在继续之前,让我们先了解一下数组的基本概念。
什么是数组?
数组 是一种容器,它可以容纳固定数量的项目,这些项目必须是相同类型。数组中存储的每个项目称为 元素,它们可以是任何类型,包括整数、浮点数、字符串等。
这些元素存储在连续的内存位置。数组中每个元素的位置都有一个从 0 开始的数字 索引,这些索引用于标识和访问元素。
数组表示
数组被表示为多个容器的集合,每个容器存储一个元素。这些容器从 '0' 到 'n-1' 进行索引,其中 n 是该数组的大小。
数组在不同语言中可以用各种方式声明。以下是一个示意图 −
根据上图,以下是需要注意的重要点 −
索引从 0 开始。
数组长度为 10,这意味着它可以存储 10 个元素。
可以通过索引访问每个元素。例如,可以通过索引 6 获取元素 9。
在 Python 中创建数组
要在 Python 中创建数组,请导入 array 模块并使用其 array() function。我们可以使用此函数创建三种基本类型的数组,即 integer、float 和 Unicode characters。
array() 函数接受 typecode 和 initializer 作为参数值,并返回 array class 的对象。
语法
在 Python 中创建数组的语法如下 −
# 导入模块 import array as array_name # 创建数组 obj = array_name.array(typecode[, initializer])
其中,
typecode − 用于指定数组中元素类型的 typecode 字符。
initializer − 可选值,用于初始化数组。它必须是 list、bytes-like object 或适当类型的可迭代元素。
示例
以下示例展示了如何使用 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 array 类型由单个字符 Typecode 参数决定。以下列出了 type codes 和数组的预期数据类型 −
| typecode | Python 数据类型 | 字节大小 |
|---|---|---|
| 'b' | signed integer | 1 |
| 'B' | unsigned integer | 1 |
| 'u' | Unicode character | 2 |
| 'h' | signed integer | 2 |
| 'H' | unsigned integer | 2 |
| 'i' | signed integer | 2 |
| 'I' | unsigned integer | 2 |
| 'l' | signed integer | 4 |
| 'L' | unsigned integer | 4 |
| 'q' | signed integer | 8 |
| 'Q' | unsigned integer | 8 |
| 'f' | floating point | 4 |
| 'd' | floating point | 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