做的网站太大,网站建设合同属于什么类别,网站科普信息化建设的意义,怎样做一个网站Python 的 collections 模块提供了一些额外的数据结构#xff0c;这些数据结构在内置的数据类型#xff08;如列表、字典、集合等#xff09;的基础上#xff0c;增加了额外的功能或优化了性能。下面是如何使用 collections 模块中的 deque、Counter 和 OrderedDict 这三种…Python 的 collections 模块提供了一些额外的数据结构这些数据结构在内置的数据类型如列表、字典、集合等的基础上增加了额外的功能或优化了性能。下面是如何使用 collections 模块中的 deque、Counter 和 OrderedDict 这三种数据结构的简单示例。
1. deque双端队列
deque发音为“deck”是一个线程安全、快速添加/删除元素于两端的线性容器。它支持从两端快速添加和删除元素时间复杂度为 O(1)。 python复制代码
from collections import deque # 创建一个 deque d deque(ghi) # 添加元素到右端 d.append(j) d.append(k) # 添加元素到左端 d.appendleft(f) d.appendleft(e) # 打印 deque print(d) # 输出: deque([e, f, g, h, i, j, k]) # 从右端移除元素 print(d.pop()) # 输出: k # 从左端移除元素 print(d.popleft()) # 输出: e
2. Counter计数器
Counter 是一个字典子类用于计数可哈希对象。它是一个字典其中元素被当作字典键它们的计数被存储为字典值。 python复制代码
from collections import Counter # 创建一个 Counter c Counter(gallahad) # 输出 Counter print(c) # 输出: Counter({a: 3, l: 2, g: 1, h: 1, d: 1}) # 更新计数器 c.update(admiral) # 输出更新后的 Counter print(c) # 输出: Counter({a: 4, d: 2, l: 2, g: 1, m: 1, i: 1, r: 1, h: 1}) # 获取某个元素的计数 print(c[a]) # 输出: 4 # 获取元素计数并删除该元素如果计数为 0则不执行删除 print(c.pop(d)) # 输出: 2 # 输出更新后的 Counter print(c) # 输出: Counter({a: 4, l: 2, g: 1, m: 1, i: 1, r: 1, h: 1})
3. OrderedDict有序字典
OrderedDict 是一个字典子类它保持了元素被插入时的顺序。当迭代 OrderedDict 时元素的顺序与它们被插入时的顺序相同。 python复制代码
from collections import OrderedDict # 创建一个 OrderedDict d OrderedDict() d[foo] 1 d[bar] 2 d[spam] 3 d[grok] 4 # 迭代并打印 OrderedDict for key in d: print(key, d[key]) # 输出: # foo 1 # bar 2 # spam 3 # grok 4 # 插入一个新的键值对到有序字典的开始 d.move_to_end(foo, lastFalse) # 再次迭代并打印 for key in d: print(key, d[key]) # 输出: # foo 1 # bar 2 # spam 3 # grok 4
这些数据结构在需要特定功能的场景下非常有用如需要维护插入顺序的字典、需要快速从两端添加/删除元素的列表或者需要计数可哈希对象的场景。