Python中groupby的用法
时间: 2023-07-08 20:51:20 浏览: 78
`groupby` 是 Python 标准库中的一个函数,可以根据指定的键对迭代器中的元素进行分组。
`groupby` 函数的基本用法如下:
```python
from itertools import groupby
# 使用 groupby 对列表进行分组
lst = [1, 2, 2, 3, 3, 3, 4, 4, 5]
for key, group in groupby(lst):
print(key, list(group))
```
输出结果如下:
```
1 [1]
2 [2, 2]
3 [3, 3, 3]
4 [4, 4]
5 [5]
```
可以看到,`groupby` 函数返回一个迭代器,每次迭代都会返回一个键(即分组的依据)和一个迭代器,该迭代器包含了与该键相同的元素组成的分组。
`groupby` 函数还可以接受一个可调用对象作为参数,用于指定分组的依据。例如,可以根据字符串的长度对字符串列表进行分组:
```python
from itertools import groupby
# 使用 lambda 函数对字符串列表进行分组
lst = ['cat', 'dog', 'elephant', 'rat', 'lion']
for key, group in groupby(lst, lambda x: len(x)):
print(key, list(group))
```
输出结果如下:
```
3 ['cat', 'dog', 'rat']
8 ['elephant']
4 ['lion']
```
可以看到,这里使用了一个 lambda 函数作为分组的依据,该函数返回每个字符串的长度。这样就可以根据字符串的长度对字符串列表进行分组,输出结果中每个键表示字符串的长度,每个值表示该长度的所有字符串组成的列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)