Python中的collections

https://docs.python.org/2/library/collections.html

1、Counter

获取列表或者可迭代对象中的元素及个数 ,返回的是字典,key是元素,value是出现的个数


2、defaultdict(type)

与dict有些不同,其value值类型在初始化时就指定


3、namedtuple('classname', 'property_name1,property_name2')或者namedtuple('classname', 'key1 key2')

把元组转换成容器,不需要通过下标来访问,通过属性名来访问


4、OrderedDict

有序字典,保持插入的顺序,覆盖时不会修改原来的顺序


5、deque

双端队列,右边操作的append, pop, extend

左边操作的:appendLeft, popLeft, extendLeft


### Python `collections` 模块使用教程 #### 1. Counter 类 `Counter` 是一个字典子类,专门用于计算哈希表对象中元素的数量。它支持快速统计列表或其他可迭代对象内的元素频率。 ```python from collections import Counter data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] counter = Counter(data) print(counter) # 输出: Counter({'apple': 3, 'banana': 2, 'orange': 1}) ``` 此功能对于需要频繁查询特定项数量的应用非常有用[^1]。 #### 2. defaultdict 类 当访问不存在的键时,默认返回由函数指定的一个默认值而不是抛出异常。这使得处理缺失键变得简单得多。 ```python from collections import defaultdict d = defaultdict(int) d['a'] += 1 print(d['a']) # 输出: 1 print(d['b']) # 输出: 0 (因为'b'之前未被定义过) ``` 这种特性非常适合构建嵌套的数据结构或初始化计数器等场景. #### 3. OrderedDict 类 `OrderedDict` 继承自标准库中的 dict 并保留了记录插入顺序的能力,在遍历时会按照最初加入项目的先后次序输出。 ```python from collections import OrderedDict ordered_dict = OrderedDict() ordered_dict['one'] = 1 ordered_dict['two'] = 2 for key in ordered_dict: print(key, ordered_dict[key]) # 输出: # one 1 # two 2 ``` 这对于实现LRU缓存等功能特别有帮助. #### 4. namedtuple 函数 通过命名元组可以更清晰地表达数据含义而不必依赖位置参数来解释其意义。相比普通元组更加易读也更容易维护。 ```python from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(3, 4) print(p.x, p.y) # 输出: 3 4 ``` 这种方式既保持了 tuple 的不可变性和轻量级特点又增强了语义上的描述能力[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值