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

作者:

文章目录
  • Python 标准库中的 array 模块提供了一个固定类型数组类,用于高效地存储同类型的元素。 与内置的 list 类型相比,array 更加节省内存并且能够处理大量数据。array 主要用于数值计算和处理大规模的同类型数据。由于其内部存储方式比列表更为紧凑,array 在某些场景下可以提高程序的性能,特别是涉及大量数值运算时。
  • 数值计算:如果需要大量存储数值数据且元素类型相同,array 是一个不错的选择。它在内存中以固定大小的格式存储数据,适合进行数值计算。 优化内存:对于只需要存储简单数据类型(如整数或浮点数)的情况,array 比 list 更加节省内存。 文件操作:array 支持直接与二进制文件交互,将数据以二进制格式读取或写入文件,适用于大规模数据的存储和读取。
  • 类 描述 array 用于创建一个固定类型的数组对象,数组元素类型一致,支持高效的内存存储。
  • 参数: typecode:一个字符,表示数组中元素的类型。常见的类型码有: b:有符号字符(byte) B:无符号字符 u:Unicode字符(Python3.3已弃用) h:有符号短整型 H:无符号短整型 i:有符号整型 I:无符号整型 l:有符号长整型 L:无符号长整型 f:浮点型 d:双精度浮点型 initializer:可选,用于初始化数组的内容,可以是一个列表、元组或其他可迭代对象。 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 出现的次数。
  • 类型限制:array 中的元素类型必须一致,并且只能存储基本数据类型(如整数、浮点数等)。如果需要存储不同类型的数据,可以使用列表。 类型码:在创建 array 时,必须指定一个有效的类型码(如 ‘i’ 表示整数,‘f’ 表示浮点数)。不同类型的元素不能混合在同一个数组中。 内存优化:array 比 list 更节省内存,特别是在处理大量数值数据时。如果只需存储数值数据,array 是比 list 更高效的选择。 操作效率:array 主要用于高效存储和处理大量数据,特别适合进行数值计算和与文件的二进制交互,但不如 list 灵活,特别是在需要处理多种不同数据类型时。 不支持复杂类型:array 不支持存储复杂的类型(如字典、列表等),只能存储基本数据类型。
  • Python 中的 array 模块提供了一种高效的方式来存储和处理同类型的数据。与 Python 列表相比,array 在内存使用上更为节省,特别适合用于数值计算、处理大量数据的场景。它通过强制元素类型一致性来保证高效存储,但也因此限制了它的灵活性。对于需要处理大量数值数据或需要与二进制文件交互的应用,array 是一个理想的选择。 您可能感兴趣的文章: 详解Python中的array数组模块相关使用 python获取array中指定元素的示例 python 实现多维数组(array)排序 python基础之Numpy库中array用法总结
  • 目录
    • 模块介绍
    • 使用场景
    • 主要类
    • – array
    • 主要函数
      • – append()
      • – insert()
      • – remove()
      • – pop()
      • – reverse()
      • – count()
      • – index()
      • – open()
    • 注意事项
      • 总结

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

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

        • 数值计算:如果需要大量存储数值数据且元素类型相同,array 是一个不错的选择。它在内存中以固定大小的格式存储数据,适合进行数值计算。
        • 优化内存:对于只需要存储简单数据类型(如整数或浮点数)的情况,array 比 list 更加节省内存。
        • 文件操作:array 支持直接与二进制文件交互,将数据以二进制格式读取或写入文件,适用于大规模数据的存储和读取。

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

        参数:

        • typecode:一个字符,表示数组中元素的类型。常见的类型码有:
          • b:有符号字符(byte)
          • B:无符号字符
          • u:Unicode字符(Python3.3已弃用)
          • h:有符号短整型
          • H:无符号短整型
          • i:有符号整型
          • I:无符号整型
          • l:有符号长整型
          • L:无符号长整型
          • f:浮点型
          • d:双精度浮点型
        • initializer:可选,用于初始化数组的内容,可以是一个列表、元组或其他可迭代对象。
        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 出现的次数。

        追加元素

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

        插入元素

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

        删除元素

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

        弹出元素

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

        反转数组

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

        计算元素出现次数

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

        查找元素索引

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

        读写文件

        # 写入文件
        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])
        

        • 类型限制:array 中的元素类型必须一致,并且只能存储基本数据类型(如整数、浮点数等)。如果需要存储不同类型的数据,可以使用列表。

        • 类型码:在创建 array 时,必须指定一个有效的类型码(如 ‘i’ 表示整数,‘f’ 表示浮点数)。不同类型的元素不能混合在同一个数组中。

        • 内存优化:array 比 list 更节省内存,特别是在处理大量数值数据时。如果只需存储数值数据,array 是比 list 更高效的选择。

        • 操作效率:array 主要用于高效存储和处理大量数据,特别适合进行数值计算和与文件的二进制交互,但不如 list 灵活,特别是在需要处理多种不同数据类型时。

        • 不支持复杂类型:array 不支持存储复杂的类型(如字典、列表等),只能存储基本数据类型。

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

        您可能感兴趣的文章:

        • 详解Python中的array数组模块相关使用
        • python获取array中指定元素的示例
        • python 实现多维数组(array)排序
        • python基础之Numpy库中array用法总结

        站内搜索