Python 容器数据类型


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

其中一些容器包括:

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

要使用此模块,我们应该使用以下方式导入它:

import collections

Deque 对象

Deque 本质上是栈和队列结构的泛化,它从左到右初始化。它使用列表对象来创建 deque。

一些与 Deque 相关的函数:

序号函数及描述
1append(x)
在 deque 的右侧添加元素 x
2appendleft(x)
在 deque 的左侧添加元素 x
3clear()
清空 deque
4count(x)
统计 deque 中 x 出现的次数
5index(x[, start[,stop]])
返回 x 的位置。如果定义了 start 和 stop,则将在该范围内查找
6insert(i, x)
在 deque 的位置 i 插入 x
7pop()
删除并返回右侧的元素
8popleft()
删除并返回左侧的元素
9reverse()
反转 deque 的内容
10rotate(n = 1)
将 deque 向右旋转 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'])

Counter 对象

Counter 是 dict 类型对象的子类。它可以用于统计键值。Counter 仅允许整数值。

一些与 Counter 相关的函数:

序号函数及描述
1elements()
返回元素,其次数与计数器值相同。
2most_common([n])
此函数返回计数器中最常用的 n 个元素的列表。如果未指定 n,则将返回所有元素。
3subtract(iterable or mapping)
从两个计数器对象中减去计数器值,其中键匹配。
4update(iterable or 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 成员:

序号函数及描述
1maps
它用于返回键及其对应值。
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'}]

更新于: 2019年7月30日

2K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告