Python 容器資料型別
在集合中,有一些容器資料型別,它們是 Python 通用內建容器(如 dict、list、set 等)的替代方案。
其中一些容器包括:
| 序號 | 容器及描述 |
|---|---|
| 1 | namedtuple() 用於建立具有名稱欄位的元組子類 |
| 2 | deque 使用列表型別資料建立佇列 |
| 3 | Counter dict 的子類,用於統計雜湊表物件 |
| 4 | ChainMap 用於建立多個對映的單個檢視 |
| 5 | OrderedDict dict 的子類,其中資料以有序的方式新增 |
| 6 | UserList list 的包裝器,以便於訪問。 |
要使用此模組,我們應該使用以下方式匯入它:
import collections
Deque 物件
Deque 本質上是棧和佇列結構的泛化,它從左到右初始化。它使用列表物件來建立 deque。
一些與 Deque 相關的函式:
| 序號 | 函式及描述 |
|---|---|
| 1 | append(x) 在 deque 的右側新增元素 x |
| 2 | appendleft(x) 在 deque 的左側新增元素 x |
| 3 | clear() 清空 deque |
| 4 | count(x) 統計 deque 中 x 出現的次數 |
| 5 | index(x[, start[,stop]]) 返回 x 的位置。如果定義了 start 和 stop,則將在該範圍內查詢 |
| 6 | insert(i, x) 在 deque 的位置 i 插入 x |
| 7 | pop() 刪除並返回右側的元素 |
| 8 | popleft() 刪除並返回左側的元素 |
| 9 | reverse() 反轉 deque 的內容 |
| 10 | rotate(n = 1) 將 deque 向右旋轉 n 次 |
示例程式碼
import collections as col
my_deque = col.deque('124dfre')
print(my_deque)
print("Popped Item: " + str(my_deque.pop()))
print("Popped Item From Left: " + str(my_deque.popleft()))
print(my_deque)輸出
deque(['1', '2', '4', 'd', 'f', 'r', 'e']) Popped Item: e Popped Item From Left: 1 deque(['2', '4', 'd', 'f', 'r'])
Counter 物件
Counter 是 dict 型別物件的子類。它可以用於統計鍵值。Counter 僅允許整數值。
一些與 Counter 相關的函式:
| 序號 | 函式及描述 |
|---|---|
| 1 | elements() 返回元素,其次數與計數器值相同。 |
| 2 | most_common([n]) 此函式返回計數器中最常用的 n 個元素的列表。如果未指定 n,則將返回所有元素。 |
| 3 | subtract(iterable or mapping) 從兩個計數器物件中減去計數器值,其中鍵匹配。 |
| 4 | update(iterable or mapping) 它新增值而不替換值,其中鍵匹配。 |
示例程式碼
import collections as col text_list = ['ABC','PQR','ABC','ABC','PQR','Mno','xyz','PQR','ABC','xyz'] my_counter = col.Counter() for element in text_list: my_counter[element] += 1 print(my_counter) print(my_counter.most_common(2))
輸出
Counter({'ABC': 4, 'PQR': 3, 'xyz': 2, 'Mno': 1})
[('ABC', 4), ('PQR', 3)]ChainMap 物件
ChainMap 用於將字典封裝到單個單元中。
一些 ChainMap 成員:
| 序號 | 函式及描述 |
|---|---|
| 1 | maps 它用於返回鍵及其對應值。 |
| 2 | new_child(m = None) 此函式用於在鏈的第一個位置插入一個新字典。 |
示例程式碼
import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code) #Insert New Child
print("Final Chain: " + str(chain.maps))輸出
Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Final Chain: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP