python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python标准库array数组操作

Python中标准库array数组操作举例详解

作者:骑个小蜗牛

这篇文章主要介绍了Python中标准库array数组操作的相关资料,Python的array模块提供了固定类型数组类,用于高效存储同类型元素,节省内存并支持数值计算,需要的朋友可以参考下

模块介绍

Python 标准库中的 array 模块提供了一个固定类型数组类,用于高效地存储同类型的元素。

与内置的 list 类型相比,array 更加节省内存并且能够处理大量数据。array 主要用于数值计算和处理大规模的同类型数据。由于其内部存储方式比列表更为紧凑,array 在某些场景下可以提高程序的性能,特别是涉及大量数值运算时。

使用场景

主要类

描述
array用于创建一个固定类型的数组对象,数组元素类型一致,支持高效的内存存储。

- array

参数:

import array

# 创建一个包含整数的数组
arr_int = array.array('i', [1, 2, 3, 4, 5])
print(arr_int)  # 输出: array('i', [1, 2, 3, 4, 5])

# 创建一个包含浮点数的数组
arr_float = array.array('f', [1.1, 2.2, 3.3])
print(arr_float)  # 输出: array('f', [1.100000023841858, 2.200000047683716, 3.299999952316284])

主要函数

函数描述示例
array.append(x)向数组末尾添加元素 x。arr.append(5) 将 5 添加到数组末尾。
array.insert(i, x)在指定索引 i 处插入元素 x。arr.insert(1, 10) 在索引 1 处插入 10。
array.remove(x)移除数组中第一个匹配元素 x。arr.remove(2) 移除第一个出现的 2。
array.pop([i])移除并返回索引 i 处的元素,若未指定则默认删除最后一个元素。arr.pop(1) 删除并返回索引 1 处的元素。
array.extend(iter)向数组添加可迭代对象 iter 中的所有元素。arr.extend([6, 7]) 将 [6, 7] 添加到数组末尾。
array.reverse()反转数组中的元素顺序。arr.reverse() 反转数组中的元素。
array.tofile(file)将数组的元素写入到指定的文件。arr.tofile(f) 将数组写入文件 f。
array.fromfile(file, count)从文件读取 count 个元素并存入数组。arr.fromfile(f, 4) 从文件 f 中读取4个元素。
array.index(x)返回数组中第一次出现元素 x 的索引。arr.index(3) 返回元素 3 的索引。
array.count(x)返回数组中元素 x 出现的次数。arr.count(3) 返回元素 3 出现的次数。

- append()

追加元素

# 追加元素
arr_int.append(6)
print(arr_int)  # 输出: array('i', [1, 2, 3, 4, 5, 6])

- insert()

插入元素

# 插入元素
arr_int.insert(2, 10)  # 在索引2处插入10
print(arr_int)  # 输出: array('i', [1, 2, 10, 3, 4, 5, 6])

- remove()

删除元素

# 删除元素
arr_int.remove(4)  # 删除第一个出现的4
print(arr_int)  # 输出: array('i', [1, 2, 10, 3, 5, 6])

- pop()

弹出元素

# 弹出元素
popped = arr_int.pop(3)  # 弹出索引3处的元素
print(popped)  # 输出: 3
print(arr_int)  # 输出: array('i', [1, 2, 10, 5, 6])

- reverse()

反转数组

# 反转数组
arr_int.reverse()
print(arr_int)  # 输出: array('i', [6, 5, 10, 2, 1])

- count()

计算元素出现次数

# 计算元素出现次数
print(arr_int.count(10))  # 输出: 1

- index()

查找元素索引

# 查找元素索引
print(arr_int.index(5))  # 输出: 1

- open()

读写文件

# 写入文件
arr_int = array.array('i', [1, 2, 3, 4, 5])
with open('array_data.bin', 'wb') as f:
    arr_int.tofile(f)

# 从文件读取
arr_new = array.array('i', [0, 0, 0, 0, 0])
with open('array_data.bin', 'rb') as f:
    arr_new.fromfile(f, 5)
print(arr_new)  # 输出: array('i', [1, 2, 3, 4, 5])

注意事项

总结

Python 中的 array 模块提供了一种高效的方式来存储和处理同类型的数据。与 Python 列表相比,array 在内存使用上更为节省,特别适合用于数值计算、处理大量数据的场景。它通过强制元素类型一致性来保证高效存储,但也因此限制了它的灵活性。对于需要处理大量数值数据或需要与二进制文件交互的应用,array 是一个理想的选择。

您可能感兴趣的文章:
阅读全文