Python3 提供了一些专门的数据类型容器,被称为容器数据类型,它们被定义在collections
模块中。这些容器有特定的用途,并且在某些情况下表现出色。
namedtuple()
:创建具有命名字段的元组的工厂函数。
from collections import namedtuple
# 创建一个名为Point的元组,具有x和y两个字段
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x) # 输出1
print(p.y) # 输出2
deque
:双端队列,可以快速的从任何一端进行添加和删除。
from collections import deque
q = deque(['a', 'b', 'c'])
# 从右侧添加
q.append('d')
print(q) # 输出:deque(['a', 'b', 'c', 'd'])
# 从左侧添加
q.appendleft('e')
print(q) # 输出:deque(['e', 'a', 'b', 'c', 'd'])
defaultdict
:一个构造函数,它返回具有默认值的字典。
from collections import defaultdict
# 使用int作为默认值的dict
dd = defaultdict(int)
# 添加键值对
dd['a'] = 10
# 访问未定义的键,将返回默认值0
print(dd['b']) # 输出:0
OrderedDict
:保持键的插入顺序的字典。
from collections import OrderedDict
# 创建一个OrderedDict
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
# 遍历OrderedDict
for key in od:
print(key) # 输出:a b c
Counter
:一个计数器,可以用来计数哈希表中的元素。
from collections import Counter
# 创建一个Counter
c = Counter()
# 更新计数器
c.update('abcdeabcdabc')
print(c) # 输出:Counter({'a': 3, 'b': 3, 'c': 3, 'd': 2, 'e': 1})
以上是collections
模块中的一些常用数据类型容器,每个容器都有其特定的用途,可以根据实际需求选择使用。