admin 管理员组

文章数量: 887629


2024年2月18日发(作者:mysql 取交集)

python groupby函数用法

Python中的groupby(函数用于将数据列表或数据集合中的元素按照某个特定的特征进行分组。该函数的返回值是一个迭代器,其中的每个元素都是一个元组,包含两个值:第一个值是分组特征的值,第二个值是对应的元素集合。

函数原型:

def groupby(iterable[, keyfunc])。

其中,iterable参数是需要分组的数据列表或数据集合,keyfunc参数是一个可选的参数,用于指定分组的特征。如果不指定keyfunc,则默认将元素本身作为分组特征。

groupby(函数经常和其它函数搭配使用,如sorted(、map(等。

下面是groupby(函数的使用示例:

例1:将字符串列表按照首字母分组。

```。

from itertools import groupby。

words = ["apple", "ant", "ball", "boy", "cat", "car"]。

for k, g in groupby(words, key=lambda 某: 某[0]):。

print(k, list(g))。

# Output:。

# a ['apple', 'ant']。

# b ['ball', 'boy']。

# c ['cat', 'car']。

```。

在这个例子中,我们将字符串列表按照首字母进行分组。使用lambda函数指定了分组特征,即首字母。groupby(函数将字符串列表根据首字母分成了3组,并输出了每组的元素。可以看到,输出的每个元素都是一个元组,第一个值是分组特征,第二个值是对应的元素集合。

例2:将数字列表按照奇偶性分组,并对每组进行求和。

```。

from itertools import groupby。

numbers = [1, 2, 3, 4, 5, 6]。

for k, g in groupby(numbers, key=lambda 某: 某 % 2):。

print(k, sum(g))。

# Output:。

#19。

#012。

```。

在这个例子中,我们将数字列表按照奇偶性进行分组。使用lambda函数指定了分组特征,即每个元素对2的余数。groupby(函数将数字列表根据奇偶性分成了2组,并对每组进行了求和操作。

需要注意的是,groupby(函数对于输入的数据集合必须是有序的,否则可能会得到不符合预期的结果。

总的来说,groupby(函数是一个十分有用的函数,可用于对数据集合进行分组操作,并结合其它函数进行更复杂的数据处理。熟练掌握该函数的使用,能够使代码更简洁、更易读、更易维护。


本文标签: 函数 分组 列表 数据 进行