Python - 数组



Python 中的数组

与 C++ 或 Java 等其他编程语言不同,Python 没有对数组的内置支持。但是,Python 有几种数据类型,例如列表和元组(尤其是列表),它们通常用作数组,但是,存储在这些类型的序列中的项目不必属于同一类型。

此外,我们可以使用 array 模块创建和操作数组。在进一步讨论之前,我们先了解一下数组。

什么是数组?

数组是一个容器,可以容纳固定数量的项目,这些项目应该是相同的类型。存储在数组中的每个项目都称为元素,它们可以是任何类型的,包括整数、浮点数、字符串等。

这些元素存储在连续的内存位置。元素在数组中的每个位置都有一个从 0 开始的数字索引。这些索引用于识别和访问元素。

数组表示

数组表示为多个容器的集合,其中每个容器存储一个元素。这些容器的索引从 '0' 到 'n-1',其中 n 是该特定数组的大小。

数组可以用不同的语言以各种方式声明。下面是一个插图 -

Python Array Representation

根据上图,以下是需要考虑的要点 -

  • 索引从 0 开始。
  • 数组长度为 10,这意味着它可以存储 10 个元素。
  • 每个元素都可以通过其索引进行访问。例如,我们可以将索引为 6 的元素获取为 9。

在 Python 中创建数组

要在 Python 中创建数组,请导入 array 模块并使用其 array() 函数。我们可以使用此函数创建一个包含三种基本类型的数组,即整数、浮点数和 Unicode 字符。

array() 函数接受 typecode 和 initializer 作为参数值,并返回 array class 的对象。

语法

在 Python 中创建数组的语法是 −


# importing	
import array as array_name

# creating array
obj = array_name.array(typecode[, initializer])

哪里

  • typecode − 用于指定数组中元素类型的 typecode 字符。
  • initializer − 它是一个可选值,从中初始化数组。它必须是列表、类似字节的对象或适当类型的可迭代元素。

以下示例演示如何使用 array 模块在 Python 中创建数组。


import array as arr

# creating an array with integer type
a = arr.array('i', [1, 2, 3])
print (type(a), a)

# creating an array with char type
a = arr.array('u', 'BAT')
print (type(a), a)

# creating an array with float type
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 数组的基本操作

以下是数组支持的基本操作 -

  • 遍历 − 逐个打印所有数组元素。
  • 插入 − 在给定索引处添加元素。
  • 删除 − 删除给定索引处的元素。
  • 搜索 − 使用给定索引或值搜索元素。
  • Update - 更新给定索引处的元素。

访问 Array Element

我们可以使用元素的索引来访问数组的每个元素。

下面的代码显示了如何访问数组的元素。


from array import *
array1 = array('i', [10,20,30,40,50])
print (array1[0])
print (array1[2])

当我们编译并执行上述程序时,它会产生以下结果——

10
30

插入数组操作

在插入操作中,我们将一个或多个数据元素插入到数组中。根据要求,可以在 array 的开头、结尾或任何给定的索引处添加新元素。

在这里,我们使用 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

更新数组操作

Update operation 是指从给定索引处的数组中更新现有元素。在这里,我们只需将新值重新分配给我们想要更新的所需索引。

在此示例中,我们将更新索引 2 处的 array element 的值。


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