# ucollections – 集合和容器类型
该模块实现了相应CPython模块的子集,如下所述。有关更多信息,请参阅原始CPython文档[collections](https://docs.python.org/3.5/library/collections.html#module-collections).
此模块实现高级集合和容器类型以保存/累积各种对象。
## 1\. 类
### 1.1. Deques(双端队列)是一个类似列表的容器,支持O(1)追加并从双端队列的任一侧弹出。使用以下参数创建新的deques:
```
ucollections.deque(iterable, maxlen[, flags])
```
* iterable必须是空元组,并且新的deque被创建为空。
* 必须指定maxlen,并且双端队列将限制为此最大长度。一旦双端队列已满,添加的任何新项目将丢弃对方的项目。
* 添加项目时,可选标志可以为1以检查溢出。
除了支持bool和len之外,deque对象还有以下方法:
#### `deque.append(x)`
将`x`添加到双端队列的右侧。如果启用了溢出检查并且没有剩余空间,则引发 IndexError。
#### `deque.popleft()`
从双端队列的左侧移除并返回一个项目。如果没有项目,则引发 IndexError。
### 1.2. 这是工厂函数,用于创建具有特定名称和字段集的新的namedtuple类型。
```
ucollections.namedtuple(name, fields)
```
namedtuple是元组的子类,它不仅可以通过数字索引访问其字段,还可以使用符号字段名称访问属性访问语法。 Fields是指定字段名称的字符串序列。为了与CPython兼容,它也可以是一个以空格分隔的字段命名的字符串(但效率较低)。使用示例:
~~~
from ucollections import namedtuple
MyTuple = namedtuple("MyTuple", ("id", "name"))
t1 = MyTuple(1, "foo")
t2 = MyTuple(2, "bar")
print(t1.name)
assert t2.name == t2[1]
~~~
### 1.3.`dict`类型子类,它记住并保留添加的键的顺序。当迭代命令dict时,按照添加的顺序返回键/项:
```
ucollections.OrderedDict(...)
```
~~~
from ucollections import OrderedDict
# To make benefit of ordered keys, OrderedDict should be initialized
# from sequence of (key, value) pairs.
d = OrderedDict([("z", 1), ("a", 2)])
# More items can be added as usual
d["w"] = 5
d["b"] = 3
for k, v in d.items():
print(k, v)
~~~
Output:
~~~
z 1
a 2
w 5
b 3
~~~
- 简介
- 关于MixPY
- 准备
- MixPY_函数库
- MicroPython标准库
- gc _控制垃圾回收器
- math_数学函数
- sys_系统相关函数
- ubinascii _ 二进制/ ASCII转换
- ucollections_集合和容器类型
- uerrno _系统错误代码
- uheapq_ 堆队列算法
- ujson_JSON编码与解码
- uos _基本的“操作系统”服务
- ure_正则表达式
- MixPY_特定函数
- lcd_显示驱动
- lcd_范例
- sensor_感光元件
- sensor_范例
- image_机器视觉
- image_函数
- HaarCascade 类_特征描述符
- Similarity 类_相似度对象
- Histogram 类_直方图对象
- Percentile 类_百分比值对象
- Threhsold 类_阈值对象
- Statistics 类_统计数据对象
- Blob 类_色块对象
- Line 类_直线对象
- Circle 类_圆形对象
- Rect 类_矩形对象
- QRCode 类_ 二维码对象
- AprilTag 类_AprilTag对象
- DataMatrix 类_数据矩阵对象
- BarCode 类_条形码对象
- Displacement 类_位移对象
- Kptmatch 类_特征点对象
- ImageWriter 类_ImageWriter对象
- ImageReader 类_ImageReader对象
- Image 类_图像对象
- touchscreen_触摸屏幕
- touchscreen_范例
- video_视频
- video_范例
- audio_音频
- audio_范例
- nes_游戏模拟器
- nes_范例
- machine_板级功能
- I2C_总线协议
- I2C_范例
- PWM_脉宽调制
- PWM_范例
- SPI_同步串行协议
- SPI_范例
- Timer_硬件定时器
- Timer_范例
- UART_异步串口
- UART_范例
- network_网卡驱动
- network_范例
- Maix_功能库
- FPIOA_可编程 IO 阵列
- FPIOA_范例
- GPIO_通用输入/输出
- GPIO_范例
- I2S_驱动I2S设备
- I2S_范例
- freq_频率模块
- freq_范例
- FFT_傅里叶运算
- FFT_范例
- KPU_神经网络处理器
- KPU_范例