介绍
本篇文章为大家展示了groupby出现和itertools函数怎么在Python中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
具体代码如下所示:
得到operator import itemgetter # itemgetter用来去dict中的关键,省去了使用λ函数 得到itertools import  groupby # itertool还包含有其他很多函数,比如将多个列表联合起来. . d1={& # 39;名字# 39;:& # 39;zhangsan& # 39;, & # 39;年龄# 39;:20日& # 39;增长# 39;:& # 39;中国# 39;} d2={& # 39;名字# 39;:& # 39;wangwu& # 39;, & # 39;年龄# 39;:19日& # 39;增长# 39;:& # 39;美国# 39;} d3={& # 39;名字# 39;:& # 39;lisi # 39;, & # 39;年龄# 39;:22日& # 39;增长# 39;:& # 39;摩根大通# 39;} d4={& # 39;名字# 39;:& # 39;zhaoliu& # 39;, & # 39;年龄# 39;:22日& # 39;增长# 39;:& # 39;美国# 39;} d5={& # 39;名字# 39;:& # 39;pengqi& # 39;, & # 39;年龄# 39;:22日& # 39;增长# 39;:& # 39;美国# 39;} d6={& # 39;名字# 39;:& # 39;lijiu& # 39;, & # 39;年龄# 39;:22日& # 39;增长# 39;:& # 39;中国# 39;} lst=[d1、d2、d3、d4 d5, d6) #通过国家进行分组: lst.sort(关键=itemgetter(& # 39;增长# 39;)),#需要先排序,然后才能groupby.lst排序后自身被改变 时间=lstg groupby (lst itemgetter(& # 39;增长# 39;)), # lstg =, groupby (lst、关键=lambda x: x[& # 39;增长# 39;]),等同于使用itemgetter () for 关键,group lstg拷贝: for 才能;g 组:拷贝,#集团是一个迭代器,包含了所有的分组列的表 ,,,print 关键,g
返回:
China {& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,20日,& # 39;名字# 39;:,& # 39;zhangsan& # 39;} China {& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lijiu& # 39;} JP {& # 39;增长# 39;:,& # 39;摩根大通# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lisi # 39;} USA {& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,19日,& # 39;名字# 39;:,& # 39;wangwu& # 39;} USA {& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;zhaoliu& # 39;} USA {& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;pengqi& # 39;} print [key for 关键,group 拷贝lstg), #返回:[& # 39;中国# 39;,,& # 39;摩根大通# 39;,,& # 39;美国# 39;】 print [(键列表(集团)),for 关键,group 拷贝lstg] #返回的列表中包含着三个元组: ((& # 39;中国# 39;,,[{& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,20日,& # 39;名字# 39;:,& # 39;zhangsan& # 39;},,{& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lijiu& # 39;}]),,(& # 39;摩根大通# 39;,,[{& # 39;增长# 39;:,& # 39;摩根大通# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lisi # 39;}]),,(& # 39;美国# 39;,,[{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,19日,& # 39;名字# 39;:,& # 39;wangwu& # 39;},,{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;zhaoliu& # 39;},,{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;pengqi& # 39;}))) print dict(((键,列表(集团)),for 关键,group 拷贝lstg]) #返回的是一个字典: {& # 39;摩根大通# 39;:,[{& # 39;增长# 39;:,& # 39;摩根大通# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lisi # 39;}],, & # 39;中国# 39;:,[{& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,20日,& # 39;名字# 39;:,& # 39;zhangsan& # 39;},,{& # 39;增长# 39;:,& # 39;中国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;lijiu& # 39;}],, & # 39;美国# 39;:,[{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,19日,& # 39;名字# 39;:,& # 39;wangwu& # 39;},,{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;zhaoliu& # 39;},,{& # 39;增长# 39;:,& # 39;美国# 39;,,& # 39;年龄# 39;:,22日,& # 39;名字# 39;:,& # 39;pengqi& # 39;}]} print dict(((键,len(列表(集团))),for 关键,group 拷贝lstg]) #返回每个分组的个数: {& # 39;摩根大通# 39;,,1,,& # 39;中国# 39;,,2,,& # 39;美国# 39;:,3} #返回包含有2个以上元素的分组 print [key for 关键,group 拷贝groupby(排序(lst、关键=itemgetter(& # 39;增长# 39;)),itemgetter(& # 39;增长# 39;)),if len(列表(集团))在=2) #返回:[& # 39;中国# 39;,,& # 39;美国# 39;】 时间=lstg groupby(排序(lst、关键=itemgetter(& # 39;增长# 39;)),关键=itemgetter(& # 39;增长# 39;)), lstgall=[(键列表(集团)),for 关键,group 拷贝lstg 】 print dict(过滤器(lambda x: len (x[1])在2,lstgall)), #过滤出分组后的元素个数大于2个的分组,返回: null null null null null null null null null null出现groupby和itertools函数怎么在Python中使用