python的groupby函数
时间: 2023-09-08 20:15:16 浏览: 85
Python的groupby函数是一个用于按指定条件对序列进行分组的函数。它可以接受一个可迭代对象(如列表、元组、字符串等)和一个函数作为参数,然后按照函数的返回值对可迭代对象进行分组。
例如:
```python
from itertools import groupby
lst = [1, 2, 2, 3, 3, 3, 4, 5, 5]
for key, group in groupby(lst):
print(key, list(group))
```
输出结果为:
```
1 [1]
2 [2, 2]
3 [3, 3, 3]
4 [4]
5 [5, 5]
```
在上面的例子中,我们使用了groupby函数对lst进行了分组,按照每个元素的值进行分组,返回了一个元组,其中第一个元素是分组的键,即每个元素的值,第二个元素是一个迭代器,包含了所有与该键相同的元素。
我们还可以传递一个函数作为groupby函数的第二个参数,来自定义分组规则。例如,我们可以按照每个元素的奇偶性进行分组:
```python
from itertools import groupby
lst = [1, 2, 3, 4, 5]
for key, group in groupby(lst, lambda x: x % 2 == 0):
print(key, list(group))
```
输出结果为:
```
False [1]
True [2]
False [3]
True [4]
False [5]
```
这里我们传递了一个函数lambda x: x % 2 == 0作为groupby函数的第二个参数,它的作用是将每个元素的奇偶性作为分组的键,返回True表示偶数,False表示奇数。
阅读全文