python中itertoolsgroupby函数_如何使⽤Python的itertool。。
。
正如Sebastjan所说,你⾸先必须排序你的数据。这个很重要。
我没有得到的部分是在⽰例中的结构
groups = []groupby是什么函数
uniquekeys = []
for k, g in groupby(data, keyfunc):
groups.append(list(g)) # Store group iterator as a list
uniquekeys.append(k)
k是当前分组键,g是迭代器,您可以使⽤它迭代由该分组键定义的组。换句话说,groupby迭代器本⾝返回迭代器。
这⾥有⼀个例⼦,使⽤更清晰的变量名:
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.
在此⽰例中,事物是元组的列表,其中每个元组中的第⼀项是第⼆项所属的组。
groupby()函数有两个参数:(1)数据分组和(2)函数分组。
这⾥,lambda x:x [0]告诉groupby()使⽤每个元组中的第⼀个项作为分组键。
在上⾯的for语句中,groupby返回三个(键,组迭代器)对 – 每个唯⼀键⼀次。您可以使⽤返回的迭代器迭代该组中的每个单个项⽬。
下⾯是使⽤列表解析的相同数据的⼀个稍微不同的⽰例:
for key, group in groupby(things, lambda x: x[0]):
listOfThings = " and ".join([thing[1] for thing in group])
print key + "s: " + listOfThings + "."
这将给你输出:
animals: bear and duck. plants: cactus. vehicles: speed boat and school bus.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论