出现groupby和itertools函数怎么在Python中使用

  介绍

本篇文章为大家展示了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中使用