栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-如何使用itertools.groupby()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-如何使用itertools.groupby()?

重要说明:你必须先对数据进行排序。

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

groups = []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 groupbythings = [("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.

在此示例中,

things
是一个元组列表,其中每个元组中的第一项是第二项所属的组。

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.


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390496.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号