python groupby 函数使用实例
时间: 2023-08-01 17:11:19 浏览: 109
好的,我来为您解答。首先,`groupby()` 函数是 Python 中的一个非常有用的函数,它可以根据指定的键对序列进行分组。下面是一个使用实例:
假设我们有一个列表,里面包含了一些学生的信息,如下所示:
```python
students = [
{'name': 'Tom', 'age': 18, 'gender': 'male'},
{'name': 'Jerry', 'age': 19, 'gender': 'male'},
{'name': 'Lucy', 'age': 17, 'gender': 'female'},
{'name': 'Lily', 'age': 18, 'gender': 'female'},
{'name': 'Peter', 'age': 20, 'gender': 'male'},
{'name': 'Mary', 'age': 19, 'gender': 'female'},
]
```
如果我们想要根据性别对学生进行分组,可以使用 `groupby()` 函数,代码如下所示:
```python
from itertools import groupby
students_sorted = sorted(students, key=lambda x: x['gender']) # 先按照性别进行排序
for gender, group in groupby(students_sorted, key=lambda x: x['gender']):
print(gender)
for item in group:
print('\t', item)
```
输出结果如下:
```
female
{'name': 'Lucy', 'age': 17, 'gender': 'female'}
{'name': 'Lily', 'age': 18, 'gender': 'female'}
{'name': 'Mary', 'age': 19, 'gender': 'female'}
male
{'name': 'Tom', 'age': 18, 'gender': 'male'}
{'name': 'Jerry', 'age': 19, 'gender': 'male'}
{'name': 'Peter', 'age': 20, 'gender': 'male'}
```
可以看到,根据性别对学生进行了分组,每个组里面都是同一个性别的学生。注意,使用 `groupby()` 函数之前需要先对序列进行排序,否则会出现意料之外的结果。
阅读全文