首頁 > 後端開發 > Python教學 > Python 2.x 中如何使用collections模組進行進階資料結構操作

Python 2.x 中如何使用collections模組進行進階資料結構操作

王林
發布: 2023-07-30 11:36:22
原創
819 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板