Python 数组 – 定义、创建

什么是 Python 数组?

Python 数组是具有相同数据类型的常用数据结构集合。它用于存储数据集合。在 Python 编程中,数组由“array”模块处理。如果使用 array 模块创建数组,数组的元素必须是相同的数值类型。

何时在 Python 中使用数组?

当您需要使用许多相同类型的变量时,可以使用 Python 数组。它还可以用于存储数据集合。当您需要动态处理数据时,数组尤其有用。Python 数组比列表快得多,因为它占用的内存更少。

在 Python 中创建数组的语法

您可以在初始化 Python 数组时使用以下语法进行声明。

arrayName = array.array(type code for data type, [array,items])

下图解释了语法。

Syntax to Create an Array in Python
数组语法
  1. 标识符:指定一个名称,就像您通常为变量命名一样
  2. 模块:Python 有一个用于在 Python 中创建数组的特殊模块,称为“array”——在使用它之前必须导入它
  3. 方法:array 模块有一个用于初始化数组的方法。它接受两个参数:类型代码和元素。
  4. 类型代码:使用可用的类型代码指定数据类型(参见下表)
  5. 元素:在方括号内指定数组元素,例如 [130,450,103]

如何在 Python 中创建数组?

在 Python 中,我们使用以下语法创建数组

Class array.array(type code[,initializer])

例如

import array as myarray
abc = myarray.array('d', [2.5, 4.9, 6.7])

上面的代码创建了一个整数类型的数组。字母‘d’是一个类型代码。

下表显示了类型代码

类型代码 Python 类型 C 类型 最小大小(字节)
‘u’ Unicode 字符 Py_UNICODE 2
‘b’ Int 带符号字符 1
‘B’ Int 无符号字符 1
‘h’ Int 带符号短整型 2
‘l’ Int 带符号长整型 4
‘L’ Int 无符号长整型 4
‘q’ Int 带符号长长整型 8
‘Q’ Int 无符号长长整型 8
‘H’ Int 无符号短整型 2
‘f’ Float Float 4
‘d’ Float Double 8
‘i’ Int 带符号整型 2
‘I’ Int 无符号整型 2

如何访问数组元素?

您可以使用索引访问任何数组项。

语法是

 arrayName[indexNum]

例如,

import array
balance = array.array('i', [300,200,100])
print(balance[1])

输出

200

下图说明了通过索引访问数组项的基本概念。

How to access array elements
访问数组项

这里,我们使用索引 1 访问了数组的第二个值。此输出将是 200,即平衡数组的第二个值。

数组索引从 0 开始。您还可以使用 -1 索引访问数组的最后一个元素。

示例

import array as myarray
abc = myarray.array('d', [2.5, 4.9, 6.7])
print("Array first element is:",abc[0]) 
print("Array last element is:",abc[-1])

输出

Array first element is: 2.5
Array last element is: 6.7

您还可以使用 ‘:’ 运算符访问元素,如下面的 Python 数组示例所示。

示例

import array as myarray
abc= myarray.array('q',[3,9,6,5,20,13,19,22,30,25]) 
print(abc[1:4])
print(abc[7:10])

输出

array('q', [9, 6, 5])                                                                                                                         
array('q', [22, 30, 25])

此操作称为切片操作。

如何插入元素?

Python 数组插入操作使您能够在数组的开头、结尾或任何给定索引处插入一个或多个项。此方法需要两个参数:索引和值。

语法是

 arrayName.insert(index, value)

示例

让我们在数组的第二个项目之后添加一个新值。目前,我们的 balance 数组有三个项:300、200 和 100。请考虑值为 200,索引为 1 的第二个数组项。

要在索引 1 “之后”插入新值,您需要在 insert 方法中引用索引 2,如下面的 Python 数组示例所示。

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)

输出

array('i', [300,200,150,100])

示例 2

import array as myarr 
a=myarr.array('b',[2,4,6,8,10,12,14,16,18,20]) 
a.insert(2,56) 
print(a)

输出

array('b', [2, 4, 56, 6, 8, 10, 12, 14, 16, 18, 20])

如何修改元素?

Python 中的数组是可变的。它们可以通过以下语法进行修改

Object_name[index]=value;

示例

import array as myarr 
a=myarr.array('b',[3,6,4,8,10,12,14,16,18,20]) 
a[0]=99 
print(a)

输出

array('b', [99, 6, 4, 8, 10, 12, 14, 16, 18, 20])

我们还可以对 Python 中的数组执行连接操作。

示例

import array as myarr 
first = myarr.array('b', [4, 6, 8]) 
second = myarr.array('b', [9, 12, 15]) 
numbers = myarr.array('b')   
numbers = first + second 
print(numbers)

输出

array('b', [4, 6, 8, 9, 12, 15])

上述 Python 数组示例代码连接了两个名为“first”和“second”的变量。结果存储在名为“number”的变量中。

最后一行代码用于打印两个数组。

如何在 Python 数组中弹出元素?

在 Python 中,开发人员可以使用 pop() 方法弹出 Python 数组中的元素。下面是 Python 中 pop() 方法的示例。

Python 数组 pop 示例

import array as myarr 
first = myarr.array('b', [20, 25, 30]) 
first.pop(2) 
print(first)

输出

array('b', [20, 25])

您还可以使用 Python 的 ‘del’ 语句。

示例

import array as myarr 
no = myarr.array('b', [10, 4, 5, 5, 7]) 
del no[4]  
print(no)

输出

array('b', [10, 4, 5, 5])

如何删除元素?

通过此操作,您可以按值从数组中删除一个项目。此方法仅接受一个参数:值。运行此方法后,数组项将被重新排列,并且索引将被重新分配。

语法是

 arrayName.remove(value)

示例

让我们从数组中删除值为“3”

import array as myarray
first = myarray.array('b', [2, 3, 4]) 
first.remove(3) 
print(first)

输出

array('b', [2, 4])

如何在数组中搜索并获取值的索引

通过此操作,您可以根据值在数组中搜索项目。此方法仅接受一个参数:值。它是一种非破坏性方法,这意味着它不会影响数组值。

语法是

 arrayName.index(value)

示例

让我们在数组中查找值为“3”。此方法返回搜索值的索引。

import array as myarray
number = myarray.array('b', [2, 3, 4, 5, 6])              
print(number.index(3))

输出

1

此操作将返回指定元素的第一次出现索引。

如何在 Python 中反转数组

此操作将反转整个数组。

语法: array.reverse()

import array as myarray
number = myarray.array('b', [1,2, 3])   
number.reverse()           
print(number)

输出

array('b', [3, 2, 1])

将数组转换为 Unicode

Python 数组可以转换为 Unicode。为了满足此需求,数组必须是‘u’类型;否则,您将收到“ValueError”。

示例

from array import array
p = array('u',[u'\u0050',u'\u0059',u'\u0054',u'\u0048',u'\u004F',u'\u004E'])
print(p)
q = p.tounicode()
print(q)

输出

array('u', 'PYTHON')                                                                                                                          
PYTHON

计算数组中值的出现次数

您还可以使用 array.count(x) 语法计算数组中元素的出现次数。

示例

import array as myarr
number = myarr.array('b', [2, 3, 5, 4,3,3,3]) 
print(number.count(3))

输出

4

遍历数组

您可以使用循环遍历 Python 数组,例如此循环

import array
balance = array.array('i', [300,200,100])
for x in balance:
	print(x)

输出

200
300
100

摘要

  • 数组是一种常见的数据结构,其中所有元素都必须是相同的数据类型。
  • Python 编程中,数组可以由“array”模块处理。
  • 当您需要使用许多相同类型的变量时,可以使用 Python 数组。
  • 在 Python 中,数组元素通过索引访问。
  • 可以使用 array.insert(i,x) 语法插入数组元素。
  • 在 Python 中,数组是可变的。
  • 在 Python 中,开发人员可以使用 pop() 方法弹出 Python 数组中的元素。
  • Python 数组可以转换为 Unicode。为了满足此需求,数组必须是‘u’类型;否则,您将收到“ValueError”。
  • Python 数组与列表不同。
  • 您可以使用索引访问任何数组项。
  • Python 的 array 模块为执行数组操作提供了单独的函数。