Python - 数组(Arrays)

Python - 数组(Arrays) 首页 / 数据结构入门教程 / Python - 数组(Arrays)

数组是一个集合,可以容纳固定数量的元素,这些元素应为同一类型。

  • 元素(Element) - 数组中存储的元素。
  • 索引(Index)      - 数组中元素的每个位置都有一个数字索引,用于标识元素。

数组表示

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

Array Declaration数组表示

根据上面的说明,以下是要考虑的重点。

基本操作

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

  • 遍历(Traverse)     - 逐一打印所有数组元素。

  • 插入(Insertion)    - 在给定索引处添加一个元素。

  • 删除(Deletion)     - 删除给定索引处的元素。

  • 搜索(Search)        - 使用给定的索引或值搜索元素。

  • 更新(Update)       - 更新给定索引处的元素。

通过将数组模块导入python程序,在python中创建数组。然后将该数组声明为eblow。

from array import *

arrayName=array(typecode, [Initializers])

Typecode是用于定义数组将保存的值的类型的代码。一些常用的类型代码是:

TypecodeValue
b1字节的有符号整数
B1字节的无符号整数
c1个字节的字符
i2字节的有符号整数
I2字节的无符号整数
f4字节的浮点
d8个字节的浮点

在查看各种数组操作之前,让无涯教程使用python创建和打印数组。

下面的代码创建一个名为array1的数组。

from array import *

array1=array('i', [10,20,30,40,50])

for x in array1:
 print(x)

当编译并执行上述程序时,它将产生以下输出-

10
20
30
40
50

访问元素

可以使用元素的索引访问数组的每个元素,以下代码显示了

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)
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

更新操作

更新操作是指以给定索引更新数组中的现有元素,在这里,无涯教程只需将新值重新分配给更新的所需索引即可。

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

10x程序员工作法 -〔郑晔〕

Netty源码剖析与实战 -〔傅健〕

Serverless入门课 -〔蒲松洋(秦粤)〕

Linux内核技术实战课 -〔邵亚方〕

技术管理案例课 -〔许健〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

程序员的个人财富课 -〔王喆〕

Dubbo源码剖析与实战 -〔何辉〕

徐昊 · AI 时代的软件工程 -〔徐昊〕

好记忆不如烂笔头。留下您的足迹吧 :)