在集合中,有一些容器数据类型,它们是python通用内置容器(如dict,list,set等)的替代方法。
一些容器是-
序号 | 容器及说明 |
---|---|
1个 | namedtuple() 用于创建带有名称字段的元组子类 |
2 | 使用列表类型数据进行双端队列 |
3 | dict的Counter子类对哈希表对象进行计数 |
4 | ChainMap 用于创建多个映射的单个视图 |
5 | dict的OrderedDict子类,其中数据以有序方式添加 |
6 | 列表的UserList包装器,以便于访问。 |
要使用此模块,我们应该使用-导入它
import collections
Deque基本上是堆栈和队列结构的一般化,从左到右进行初始化。它使用列表对象创建双端队列。
一些与双端队列相关的方法是-
序号 | 方法与说明 |
---|---|
1个 | append(x) 在双端队列的右侧添加元素x |
2 | appendleft(x) 在双端队列的左侧添加元素x |
3 | clear() 清除双端队列 |
4 | count(x) 对双端队列中x出现的次数进行计数 |
5 | index(x [,start [,stop]]) 返回x的位置。如果定义了开始和停止,它将在该范围内找到 |
6 | insert(i,x)将x 插入双端队列中的位置i |
7 | pop() 从右侧移除并返回元素 |
8 | popleft() 从左侧删除并返回元素 |
9 | reverse() 反转双端队列的内容 |
10 | rotation(n = 1) 向右旋转双端队列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'])
计数器是dict类型对象的子类。可用于计算键值。计数器仅允许整数值。
一些与计数器相关的方法是-
序号 | 方法与说明 |
---|---|
1个 | elements() 返回元素,该元素保持计数器值很多倍。 |
2 | most_common([n]) 此方法从计数器返回最常用的n个元素的列表。如果未指定n,它将返回全部。 |
3 | 减去(可迭代或映射) 从键匹配的两个计数器对象中减去计数器值。 |
4 | update(iterable或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成员是-
序号 | 方法与说明 |
---|---|
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'}]