python中groupby
时间: 2023-08-01 17:07:28 浏览: 96
`groupby()` 是 Python 中内置的一个函数,它可以将一个可迭代对象(比如列表、元组、字符串等)中的元素按照指定的方式进行分组。使用 `groupby()` 函数需要先导入 `itertools` 模块。
`groupby()` 函数的语法如下:
```python
itertools.groupby(iterable[, key])
```
其中,`iterable` 是要进行分组的可迭代对象,`key` 是用于分组的函数,它接受一个参数并返回一个用于分组的键。如果不指定 `key` 参数,则默认使用元素本身作为键。
下面是一个示例代码,展示了如何使用 `groupby()` 函数将一个列表中的元素按照长度进行分组:
```python
import itertools
lst = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
groups = []
uniquekeys = []
for k, g in itertools.groupby(lst, len):
groups.append(list(g))
uniquekeys.append(k)
print(groups) # [['apple'], ['banana', 'date'], ['cherry', 'fig'], ['elderberry']]
print(uniquekeys) # [5, 6, 4, 10]
```
在上面的代码中,`groupby()` 函数将列表 `lst` 中的元素按照长度进行分组,并返回一个迭代器。在 `for` 循环中,我们遍历这个迭代器,并将每个分组转换成一个列表,然后将它们存储在 `groups` 列表中。同时,我们也将所有的键(即分组依据)存储在 `uniquekeys` 列表中。最终,我们将分组结果和键值输出到控制台。
阅读全文