array --- 数值数据数组¶
该模块定义了 array.array 类型:一种节省空间的序列,存放单一固定数值类型的值,可像 list 一样索引,但底层由一块连续内存支持,可通过缓冲区协议访问。
支持的类型码¶
单字符 typecode 参数用于选择元素类型:
类型码 |
C 类型 |
字节数 |
Python 类型 |
|---|---|---|---|
|
|
1 |
|
|
|
1 |
|
|
|
2 |
|
|
|
2 |
|
|
|
2 或 4 |
|
|
|
2 或 4 |
|
|
|
4 |
|
|
|
4 |
|
|
|
8 |
|
|
|
8 |
|
|
|
4 |
|
|
|
8 |
|
'f' 和 'd' 类型码要求固件构建时启用了浮点支持(在大多数开发板上为默认配置)。'i' 和 'I' 的确切宽度遵循宿主 C ABI --- 在 Cortex-M 端口上通常为 4 字节。
类¶
- class array.array(typecode: str, iterable: Iterable = ())¶
创建一个元素为给定类型的数组。数组的初始内容由 iterable 给出。如果未提供,则创建一个空数组。
除下列方法外,array 对象还实现了缓冲区协议。这意味着可通过
memoryview或其他使用此协议的接口,以原始字节形式访问整个数组的内容。- __getitem__(index: int | slice) Any¶
对数组进行索引读取,以
a[index]的形式调用(其中a是一个array)。如果 index 是int则返回一个值,如果 index 是切片则返回一个array。负索引从末尾开始计数,如果索引超出范围则引发IndexError。注意:
__getitem__不能直接调用(a.__getitem__(index)会失败),并且不存在于__dict__中,但a[index]确实有效。
- __setitem__(index: int | slice, value: Any) None¶
对数组进行索引写入,以
a[index] = value的形式调用(其中a是一个array)。如果 index 是int则value是单个值,如果 index 是切片则为一个array。负索引从末尾开始计数,如果索引超出范围则引发IndexError。注意:
__setitem__不能直接调用(a.__setitem__(index, value)会失败),并且不存在于__dict__中,但a[index] = value确实有效。
- __len__() int¶
返回数组中的项目数,以
len(a)的形式调用(其中a是一个array)。注意:
__len__不能直接调用(a.__len__()会失败),并且该方法不存在于__dict__中,但len(a)确实有效。
- __add__(other: array) array¶
返回一个新的
array,它是该数组与 other 的串联,以a + other的形式调用(其中a和 other 都是arrays)。注意:
__add__不能直接调用(a.__add__(other)会失败),并且不存在于__dict__中,但a + other确实有效。