如果存储的数据类型相同,list的存储方式就显得不太合适,python提供了array模块进行数组的操作。
特性:
(1)array 中每一个元素及为值本身。
(2)array使用连续的存储空间存储一组相同类型的值。
(3)array比list具有更快的读写速度和更少的占用空间。
(4)array的操作和list基本相似。
(5)支持基本符号运算和切片
(6)array通过格式符字符表示数据的类型。
格式符:
定义数组时必须指定数据类型,且只能为基础类型,不能为类或者其他组合类型(如上,其中i即为int对应的格式化的值)
array 类型 C 类型 字节长度
'c' char 1
'b' signed char 1
'B' unsigned char 1
'u' Unicode char 2 (双字节字符)
'h' signed short 2
'H' unsigned short 2
'i' signed int 4
'I' unsigned int 4
'l' signed long long 8
'L' unsigned long long 8
'f' float 4
'd' double 8
基本操作:
a1 = array.array("i") # 定义一个数组
a1.append(100) # 追加数据
a2 = array.array("i", (1, 2, 3, 4)) # 定义一个数组并初始化数据
a3 = a1 + a2 # 两个数组相加 array('i', [100, 1, 2, 3, 4])
a2.append(2) # 末尾添加一个元素
a2.buffer_info() # 返回数组空间的首地址和数组元素个数 结果(58980416L, 5)
a2.byteswap() # 数组中的每一个元素进行大小端转换
a2.byteswap()
a2.count(2) # 统计数组中2个个数
a2.extend(a1) # 相当与 a2 += a1
a2.tofile(open("test.txt", "w+")) # a2的二进制数据写入到文件中
a2.fromfile(open("test.txt", "r+"), 2) # 从文件中读取2个数据追加到a2末尾
l = a2.tolist() # a2数组转换到list 结果 [1, 2, 3, 4, 2, 100, 1, 2]
a2.fromlist(l) # 将list中的值转换追加到数组a2的末尾
s = a2.tostring() # a2 数组转换到二进制字符串
a2.fromstring(s) # 将二进制字符串值转换追加到a2的末尾
a2.reverse() # 将数组的值倒序
a2.insert(0, 100) # 在a2下标为0的前面插入100
a2.index(2) # 第一次匹配到2的位置
a = a2.pop() # 返回最后一个元素,并在a2数组中删除该元素
a = a2.pop(1) # 返回指定下标1的元素,并在a2数组中删除该元素
a2.typecode # 返回数据类型格式,结果为i
a2.itemsize # 返回数组类型的大小,结果为4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?