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