Python 容器資料型別


在集合中,有一些容器資料型別,它們是 Python 通用內建容器(如 dict、list、set 等)的替代方案。

其中一些容器包括:

序號容器及描述
1namedtuple()
用於建立具有名稱欄位的元組子類
2deque
使用列表型別資料建立佇列
3Counter
dict 的子類,用於統計雜湊表物件
4ChainMap
用於建立多個對映的單個檢視
5OrderedDict
dict 的子類,其中資料以有序的方式新增
6UserList
list 的包裝器,以便於訪問。

要使用此模組,我們應該使用以下方式匯入它:

import collections

Deque 物件

Deque 本質上是棧和佇列結構的泛化,它從左到右初始化。它使用列表物件來建立 deque。

一些與 Deque 相關的函式:

序號函式及描述
1append(x)
在 deque 的右側新增元素 x
2appendleft(x)
在 deque 的左側新增元素 x
3clear()
清空 deque
4count(x)
統計 deque 中 x 出現的次數
5index(x[, start[,stop]])
返回 x 的位置。如果定義了 start 和 stop,則將在該範圍內查詢
6insert(i, x)
在 deque 的位置 i 插入 x
7pop()
刪除並返回右側的元素
8popleft()
刪除並返回左側的元素
9reverse()
反轉 deque 的內容
10rotate(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 相關的函式:

序號函式及描述
1elements()
返回元素,其次數與計數器值相同。
2most_common([n])
此函式返回計數器中最常用的 n 個元素的列表。如果未指定 n,則將返回所有元素。
3subtract(iterable or mapping)
從兩個計數器物件中減去計數器值,其中鍵匹配。
4update(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 成員:

序號函式及描述
1maps
它用於返回鍵及其對應值。
2new_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'}]

更新於: 2019年7月30日

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.