python 分组计数
时间: 2024-08-19 16:01:17 浏览: 41
在Python中,你可以使用内置的`collections`模块中的`defaultdict`或`groupby`函数来进行分组计数。以下是两个常见场景的介绍:
1. `defaultdict`计数:
如果你想按某个键对列表中的元素进行计数,可以利用`defaultdict`,它是一个字典子类,自动为不存在的键提供默认值。例如:
```python
from collections import defaultdict
data = ['a', 'b', 'c', 'a', 'd', 'b']
count_dict = defaultdict(int)
for item in data:
count_dict[item] += 1
print(count_dict) # 输出:defaultdict(<class 'int'>, {'a': 2, 'b': 2, 'c': 1, 'd': 1})
```
2. `groupby`计数:
如果数据已经按照某种规则排序,你可以使用`itertools.groupby`结合列表推导式进行分组计数:
```python
from itertools import groupby
data.sort() # 先排序
count_list = [(k, sum(1 for _ in g)) for k, g in groupby(data)]
print(count_list) # 输出类似 [('a', 2), ('b', 2), ('c', 1), ('d', 1)]
```