网站建设与网页设计课程,2018十大网络营销案例,域名备案 网站备案,刚刚济南最新发布itertools.groupby 是 Python 标准库 itertools 模块中的一个函数#xff0c;它的主要功能是对可迭代对象中相邻的相同元素进行分组。
itertools.groupby(iterable, keyNone) 函数
作用#xff1a;
将连续的#xff08;相邻的#xff09;相同元素分组#xff0c;返回 (…itertools.groupby 是 Python 标准库 itertools 模块中的一个函数它的主要功能是对可迭代对象中相邻的相同元素进行分组。
itertools.groupby(iterable, keyNone) 函数
作用
将连续的相邻的相同元素分组返回 (key, group) 的迭代器。
导入方式
import itertools参数说明 iterable要进行分组的可迭代对象。 key可选一个函数用来指定分组依据默认是元素本身。
注意事项 它 不会自动排序或打乱顺序只会对连续相同 key 的元素进行分组。 所以通常配合 sorted() 使用才能对非连续相同元素也正确分组。
基础示例代码
import itertoolsdata [1, 1, 2, 2, 2, 3, 1]for key, group in itertools.groupby(data):print(f{key} - {list(group)})输出
1 - [1, 1]
2 - [2, 2, 2]
3 - [3]
1 - [1]注意最后又出现了一个 1 - [1]因为 groupby 是按“连续”的来分组的
搭配 key 使用示例
比如我们对一组字符串按首字母分组
data [apple, apricot, banana, blueberry, cherry]# 需要先排序否则相同首字母不连续
data_sorted sorted(data, keylambda x: x[0])for key, group in itertools.groupby(data_sorted, keylambda x: x[0]):print(f{key} - {list(group)})输出
a - [apple, apricot]
b - [banana, blueberry]
c - [cherry]实用小技巧
你可以用 groupby 来做各种分组统计比如 按类型分组处理对象 对已排序的日志数据按日期分组 对字符流按重复字符分组等等。