Python容器数据类型
在集合中,有一些容器数据类型,它们是python通用内置容器(如dict,list,set等)的替代方法。
一些容器是-
用于创建带有名称字段的元组子类
使用列表类型数据进行双端队列
dict的Counter子类对哈希表对象进行计数
用于创建多个映射的单个视图
dict的OrderedDict子类,其中数据以有序方式添加
列表的UserList包装器,以便于访问。
要使用此模块,我们应该使用-导入它
import collections
双端队列对象
Deque基本上是堆栈和队列结构的一般化,从左到右进行初始化。它使用列表对象创建双端队列。
一些与双端队列相关的方法是-
在双端队列的右侧添加元素x
在双端队列的左侧添加元素x
清除双端队列
对双端队列中x出现的次数进行计数
返回x的位置。如果定义了开始和停止,它将在该范围内找到
插入双端队列中的位置i
从右侧移除并返回元素
从左侧删除并返回元素
反转双端队列的内容
向右旋转双端队列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类型对象的子类。可用于计算键值。计数器仅允许整数值。
一些与计数器相关的方法是-
返回元素,该元素保持计数器值很多倍。
此方法从计数器返回最常用的n个元素的列表。如果未指定n,它将返回全部。
从键匹配的两个计数器对象中减去计数器值。
它添加值而不替换键匹配的值。
范例程式码
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成员是-
用于返回具有相应值的键。
此方法用于在链的第一个位置插入新字典。
范例程式码
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'}]