Python之collections

Python之collections


collections 是 Python 的一个内置模块,它实现了特殊的容器数据类型,提供了额外的性能优化和/或功能,这些数据类型往往超出了 Python 的内置数据类型(例如列表、字典和集合)。

以下是 collections 模块中一些重要的容器:

Counter

一个字典子类,用于计数可哈希的对象。它是一个无序的集合,元素被存储为字典的键,其计数被存储为字典的值。

例如:

from collections import Counter  
  
c = Counter('gallahad')   
print(c)  # 输出:Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})

deque

一个双端队列,允许在队列的两端添加和删除元素。deque 是线程安全的,并且提供了 append(), appendleft(), pop(), popleft() 等方法。

例如:

from collections import deque  
  
d = deque('ghi') # 输出 deque(['g', 'h', 'i'])  
d.append('j') # 添加一个新的元素到右边  
d.appendleft('f') # 添加一个新的元素到左边  
print(d) # 输出:deque(['f', 'g', 'h', 'i', 'j'])

defaultdict

一个字典子类,覆盖了一个方法以提供一个默认值供字典项查找。它使用提供的默认值初始化一个新的字典项,而不是抛出一个 KeyError

例如:

from collections import defaultdict  
  
dd = defaultdict(lambda: 'default value')  
dd['key1'] = 'value1'  
print(dd['key1']) # 输出:'value1'  
print(dd['key2']) # 输出:'default value',因为'key2'并不存在

namedtuple

一个函数,可以用来创建一个新的子类,该子类是一个元组子类,其中的元素可以通过属性名来访问。

例如:

from collections import namedtuple  
  
Point = namedtuple('Point', ['x', 'y'])  
p = Point(11, y=22)  
print(p[0] + p[1])  # 输出:33

OrderedDict

一个字典子类,它保持它的成员的插入顺序。在 Python 3.7 及以后的版本中,内置的 dict 类型已经默认是有序的,所以 OrderedDict 主要用于需要兼容 Python 3.6 以前的版本的情况。

defaultdict

一个字典子类,覆盖了一个方法以提供一个默认值供字典项查找。它使用提供的默认值初始化一个新的字典项,而不是抛出一个 KeyError

UserDict、UserList和 UserString

这些是用户定义的字典、列表和字符串类,允许用户添加或改变特定的方法。

《AUTOSAR谱系分解(ETAS工具链)》之总目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值