# 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_范例