在Python中,groupby
函数是itertools
模块中的函数,用于根据指定的键对可迭代对象进行分组。它返回一个迭代器,其中每个元素是一个(key, group)
的元组,其中key
是分组的键,group
是一个迭代器,包含了与该键相关联的所有元素。
以下是groupby
函数的基本语法:
itertools.groupby(iterable, key=None)
其中,iterable
是可迭代对象,例如列表、字符串、元组等,key
是一个可选的函数,用于从每个元素中提取分组的键。如果未提供key
函数,则默认使用元素本身作为键。
以下是一个简单的示例,演示了如何使用groupby
函数对列表进行分组:
import itertools
data = [1, 1, 2, 3, 3, 4, 5, 5, 5]
groups = itertools.groupby(data)
for key, group in groups:
print(key, list(group))
输出结果为:
1 [1, 1]
2 [2]
3 [3, 3]
4 [4]
5 [5, 5, 5]
在上述示例中,列表data
被分为了5组,每组具有相同的元素。通过遍历groups
迭代器,我们可以获取每个分组的键以及与之相关联的元素列表。