Python itertools.groupby()函数

Python文档上的示例非常简单:

groups = []
uniquekeys = []
for k, g in groupby(data, keyfunc):
    groups.append(list(g))      # Store group iterator as a list
    uniquekeys.append(k)

因此,在情况下,data是节点的列表,keyfunc是条件函数的逻辑所在的位置,然后groupby()对数据进行分组。

在调用groupby之前,我们首先必须对数据进行排序。否则它将无法正常工作。实际上," groupby"方法只是遍历一个列表,并且每当键更改时,它就会创建一个新的组。

正如Sebastjan所说,这个很重要。

我没有得到的部分是在示例构造中

groups = []
uniquekeys = []
for k, g in groupby(data, keyfunc):
   groups.append(list(g))    # Store group iterator as a list
   uniquekeys.append(k)

示例

from itertools import groupby

things = [("animal", "bear"), ("animal", "duck"), ("plant", "cactus"), ("vehicle", "speed boat"), ("vehicle", "school bus")]

for key, group in groupby(things, lambda x: x[0]):
    for thing in group:
        print "A %s is a %s." % (thing[1], key)
    print " "

这将为我们提供输出:

A bear is a animal.

  A duck is a animal.

  A cactus is a plant.

  A speed boat is a vehicle.

  A school bus is a vehicle.
日期:2020-03-23 19:59:55 来源:oir作者:oir