Python 容器数据类型
在集合中,有一些容器数据类型,它们是 Python 通用内置容器(如 dict、list、set 等)的替代方案。
其中一些容器包括:
| 序号 | 容器及描述 |
|---|---|
| 1 | namedtuple() 用于创建具有名称字段的元组子类 |
| 2 | deque 使用列表类型数据创建队列 |
| 3 | Counter dict 的子类,用于统计哈希表对象 |
| 4 | ChainMap 用于创建多个映射的单个视图 |
| 5 | OrderedDict dict 的子类,其中数据以有序的方式添加 |
| 6 | UserList list 的包装器,以便于访问。 |
要使用此模块,我们应该使用以下方式导入它:
import collections
Deque 对象
Deque 本质上是栈和队列结构的泛化,它从左到右初始化。它使用列表对象来创建 deque。
一些与 Deque 相关的函数:
| 序号 | 函数及描述 |
|---|---|
| 1 | append(x) 在 deque 的右侧添加元素 x |
| 2 | appendleft(x) 在 deque 的左侧添加元素 x |
| 3 | clear() 清空 deque |
| 4 | count(x) 统计 deque 中 x 出现的次数 |
| 5 | index(x[, start[,stop]]) 返回 x 的位置。如果定义了 start 和 stop,则将在该范围内查找 |
| 6 | insert(i, x) 在 deque 的位置 i 插入 x |
| 7 | pop() 删除并返回右侧的元素 |
| 8 | popleft() 删除并返回左侧的元素 |
| 9 | reverse() 反转 deque 的内容 |
| 10 | rotate(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 相关的函数:
| 序号 | 函数及描述 |
|---|---|
| 1 | elements() 返回元素,其次数与计数器值相同。 |
| 2 | most_common([n]) 此函数返回计数器中最常用的 n 个元素的列表。如果未指定 n,则将返回所有元素。 |
| 3 | subtract(iterable or mapping) 从两个计数器对象中减去计数器值,其中键匹配。 |
| 4 | update(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 成员:
| 序号 | 函数及描述 |
|---|---|
| 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'}]
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP