python中groupby函数
时间: 2023-10-24 21:30:48 浏览: 107
`groupby` 函数是 Python 标准库 `itertools` 中的一个函数,用于根据指定的键对可迭代对象进行分组。它返回一个按键分组后的迭代器对象。
以下是 `groupby` 函数的基本语法:
```python
itertools.groupby(iterable, key=None)
```
参数说明:
- `iterable`:要进行分组的可迭代对象。
- `key`:可选参数,用于指定分组的规则。它是一个函数,接受可迭代对象中的元素作为输入,并返回一个用于分组的键。如果未指定该参数,则默认使用元素本身作为键。
`groupby` 函数会返回一个迭代器,每个元素都是由键和对应的分组迭代器组成的元组。
以下是一个简单的例子,演示如何使用 `groupby` 函数对列表进行分组:
```python
from itertools import groupby
# 定义一个待分组的列表
data = [1, 1, 2, 3, 3, 3, 4, 5, 5]
# 使用 groupby 函数对列表进行分组
groups = groupby(data)
# 打印分组结果
for key, group in groups:
print(key, list(group))
```
输出结果为:
```
1 [1, 1]
2 [2]
3 [3, 3, 3]
4 [4]
5 [5, 5]
```
在这个例子中,我们使用 `groupby` 函数对列表 `data` 进行分组。由于未指定 `key` 参数,默认使用元素本身作为键。根据元素的值,列表中的元素被分成了 5 个组。
注意:`groupby` 函数要求输入的可迭代对象需要是有序的,否则会导致分组结果不符合预期。
阅读全文