Python 2.x 中如何使用collections模組進行高階資料結構操作
導語:
在Python的標準函式庫中,collections模組提供了一些進階資料結構,能夠輕鬆地進行各種操作。本文將介紹collections模組主要提供的幾種資料結構,並給出相關的程式碼範例。
一、Counter
Counter是一個簡單且強大的計數器工具,可以用來統計可迭代物件中每個元素出現的次數。
範例程式碼:
from collections import Counter # 统计一个列表中每个元素的出现次数 lst = [1, 1, 2, 3, 4, 4, 4, 5, 6, 6, 7] counter = Counter(lst) print(counter) # 输出结果 # Counter({4: 3, 1: 2, 6: 2, 2: 1, 3: 1, 5: 1, 7: 1}) # 统计一个字符串中每个字符的出现次数 s = "Hello, World!" counter = Counter(s) print(counter) # 输出结果 # Counter({'l': 3, 'o': 2, 'H': 1, 'e': 1, ',': 1, ' ': 1, 'W': 1, 'r': 1, 'd': 1, '!': 1}) # 获取出现次数最多的前3个元素及其次数 print(counter.most_common(3)) # 输出结果 # [('l', 3), ('o', 2), ('H', 1)]
二、defaultdict
defaultdict是內建字典類型的子類,它重寫了一個方法:__missing__(),可以使得在取得一個未知鍵的值時,傳回一個預設值。
範例程式碼:
from collections import defaultdict # 声明一个defaultdict,键的默认值设为0 d = defaultdict(int) print(d[1]) # 输出结果 # 0 # 声明一个defaultdict,键的默认值设为[] d = defaultdict(list) print(d[1]) # 输出结果 # [] # 声明一个defaultdict,键的默认值设为None d = defaultdict(lambda: None) print(d[1]) # 输出结果 # None
三、OrderedDict
OrderedDict是一個有序字典,它會記住元素插入的順序。
範例程式碼:
from collections import OrderedDict # 声明一个OrderedDict d = OrderedDict() # 添加键值对 d[1] = 'a' d[2] = 'b' d[3] = 'c' # 遍历字典 for k, v in d.items(): print(k, v) # 输出结果 # 1 a # 2 b # 3 c
四、deque
deque是雙端佇列,它是執行緒安全的,可以有效率地進行佇列和堆疊的操作。
範例程式碼:
from collections import deque # 创建一个双端队列 d = deque() # 添加元素 d.append(1) d.append(2) d.append(3) # 输出队列元素 print(d) # 输出结果 # deque([1, 2, 3]) # 弹出元素 print(d.popleft()) print(d.pop()) # 输出结果 # 1 # 3
總結:
本文介紹了collections模組提供的幾個高階資料結構的基本用法。 Counter可以方便地統計元素出現次數,defaultdict可以設定鍵的預設值,OrderedDict可以記住元素插入順序,deque則可以有效率地進行佇列和堆疊操作。在實際的Python開發中,靈活運用這些資料結構,將會帶來更有效率的程式設計體驗。
以上是Python 2.x 中如何使用collections模組進行進階資料結構操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!