前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习笔记(2)——groupby

python学习笔记(2)——groupby

作者头像
my_sunshine
修改2020-09-17 15:41:40
5700
修改2020-09-17 15:41:40
举报

itertools中groupby的学习

首先看一下昨天在codewars上遇到的一题: Unique In Order Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements. For example:

代码语言:javascript
复制
unique_in_order('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
unique_in_order('ABBCcAD')         == ['A', 'B', 'C', 'c', 'A', 'D']
unique_in_order([1,2,2,3,3])       == [1,2,3]
123

再来看一下高分答案:

代码语言:javascript
复制
from itertools import groupby
def unique_in_order(iterable):
	return [k for (k, _) in groupby(iterable)]
123

groupby方法在itertools模块中,适用于数据处理等方面。

代码语言:javascript
复制
itertools.groupby(iterable,key=None)
1

这个函数的有两个参数,第一个是可迭代对象,第二个是key。 groupby可以将相邻的重复元素挑出来放在一起:

代码语言:javascript
复制
for key,group in itertools.groupby('AAAABBBBCCAA'):
	print(key,list(group)


输出如下:
A ['A', 'A', 'A', 'A']
B ['B', 'B', 'B', 'B']
C ['C', 'C']
A ['A', 'A']
123456789

再看一个例子:

groupby例子图
groupby例子图

该例子更加明显的体现了groupby的数据处理能力,需要更加用心体会。 此时再回过头来看很高分答案,k for (k,_) in groupby(iterable),与key for key in groupby(iterable)是相同作用,对该答案有了更深的理解。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • itertools中groupby的学习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档