Python容器数据类型

在集合中,有一些容器数据类型,它们是python通用内置容器(如dict,list,set等)的替代方法。

一些容器是-

序号容器及说明
1个namedtuple()
用于创建带有名称字段的元组子类
2
使用列表类型数据进行双端队列
3
dict的Counter子类对哈希表对象进行计数
4ChainMap
用于创建多个映射的单个视图
5
dict的OrderedDict子类,其中数据以有序方式添加
6
列表的UserList包装器,以便于访问。

要使用此模块,我们应该使用-导入它

import collections

双端队列对象

Deque基本上是堆栈和队列结构的一般化,从左到右进行初始化。它使用列表对象创建双端队列。

一些与双端队列相关的方法是-

序号方法与说明
1个append(x)
在双端队列的右侧添加元素x
2appendleft(x)
在双端队列的左侧添加元素x
3clear()
清除双端队列
4count(x)
对双端队列中x出现的次数进行计数
5index(x [,start [,stop]])
返回x的位置。如果定义了开始和停止,它将在该范围内找到
6insert(i,x)将x
插入双端队列中的位置i
7pop()
从右侧移除并返回元素
8popleft()
从左侧删除并返回元素
9reverse()
反转双端队列的内容
10rotation(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()
返回元素,该元素保持计数器值很多倍。
2most_common([n])
此方法从计数器返回最常用的n个元素的列表。如果未指定n,它将返回全部。
3减去(可迭代或映射)
从键匹配的两个计数器对象中减去计数器值。
4update(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用于将字典封装为单个单元。

一些ChainMap成员是-

序号方法与说明
1个maps
用于返回具有相应值的键。
2new_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'}]