您的位置:首页 > 文旅 > 旅游 > 中铁建设集团网站_yy4008青苹果高清电影院_宁波seo软件免费课程_seo排名优化公司价格

中铁建设集团网站_yy4008青苹果高清电影院_宁波seo软件免费课程_seo排名优化公司价格

2025/5/18 9:38:03 来源:https://blog.csdn.net/qq_27390023/article/details/147162568  浏览:    关键词:中铁建设集团网站_yy4008青苹果高清电影院_宁波seo软件免费课程_seo排名优化公司价格
中铁建设集团网站_yy4008青苹果高清电影院_宁波seo软件免费课程_seo排名优化公司价格

itertools.groupby 是 Python 标准库 itertools 模块中的一个函数,它的主要功能是对可迭代对象中相邻的相同元素进行分组。

itertools.groupby(iterable, key=None) 函数

作用:

将连续的(相邻的)相同元素分组,返回 (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, key=lambda x: x[0])for key, group in itertools.groupby(data_sorted, key=lambda x: x[0]):print(f"{key} -> {list(group)}")

输出:

a -> ['apple', 'apricot']
b -> ['banana', 'blueberry']
c -> ['cherry']

实用小技巧:

你可以用 groupby 来做各种分组统计,比如:

  • 按类型分组处理对象;

  • 对已排序的日志数据按日期分组;

  • 对字符流按重复字符分组等等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com