Python itertools模块常用函数详解与使用指南
本文详细介绍Python内置模块itertools的核心功能与常用函数。涵盖chain串联迭代、groupby分组、count/cycle/repeat无穷迭代,以及product、permutations、combinations等排列组合工具。通过具体代码示例解析语法与参数,帮助开发者高效处理数据迭代任务,无需额外安装即可直接使用。
Python中itertools模块
一、 简介
itertools是Python语言自带的标准库,具备简洁易用且功能强大的特点。
官方文档地址:https://docs.python.org/zh-cn/3/library/itertools.html
该模块提供了一套标准化、快速且内存高效的迭代工具集。这些工具既可直接使用,也可组合搭配,形成所谓的“迭代器代数”,从而让开发者在纯Python环境中构建简洁且高效的专用数据处理逻辑。
作为Python的内置库,itertools无需用户进行额外的安装操作,导入后即可直接调用。
下文将重点讲解其中几个高频使用的函数,其他未提及的函数建议查阅官方文档以获取更全面的信息。
二、 使用介绍
1、 常用迭代器
1.1 chain
函数介绍:chain函数用于将多个迭代对象串联起来,合并生成一个更大的单一迭代器。
语法:(class) chain(*iterables: Iterable[str])
import itertools
l1 = ["A", "B"]
l2 = ["C", "D"]
print(list(itertools.chain(l1, l2))) # 将两个列表展开,当然,也可以用到一些可迭代对象里面去,比如说字符串等,返回一个可迭代对象1.2 groupby
函数介绍:groupby函数用于从迭代器中提取相邻的重复元素(即具有相同key值的连续元素),并将它们分组在一起。
语法:(class) groupby(iterable: Iterable[_T1@__new__], key: None = ...)
import itertools
for key, value in itertools.groupby("hello world! My name is Steve Anthony"):
print(key, list(value))
"""结合key使用"""
import itertools
data = [
(1, "Make", 93),
(1, "Jack", 100),
(2, "Lucy", 90)
]
for key, value in itertools.groupby(data, key=lambda student: student[0]):
print(key, list(value))2、 无穷迭代器
2.1 count
函数作用:生成一个无界限的数值序列。语法为count(start=0, step=1)。例如,若设置从100开始、步长为2,并循环10次,可打印出对应的值;需注意count()会无限循环,必须通过手动break来终止。
语法:count(start: int, [step: _Step = ...])
import itertools
for i in itertools.count(10):
print(i)=2.2 cycle
函数作用:对可迭代容器中的元素进行无限次循环遍历。
语法:(class) cycle(__iterable: Iterable[int], /)
import itertools
for i in itertools.cycle(range(10)):
print(i)2.3 repeat
函数作用:对可迭代容器中的元素重复指定times次。
语法:repeat(object: range, times: int)
import itertools
for i in itertools.repeat(range(10), 2):
print(i)3、排列组合迭代器
3.1 product
函数作用:返回笛卡尔积,其行为相当于嵌套的for循环,可通过repeat参数控制重复次数。
语法:product(*iterables: Iterable, repeat: int = 1)
import itertools
for i in itertools.product([1, 2], ["A", "B", "C"]):
print(i)3.2 permutations
函数作用:生成长度为r的元组,包含所有可能的排列组合,且元组内元素不重复。
语法:(class) permutations(iterable: Iterable, r: int | None = ...)
import itertools
for i in itertools.permutations([1, 2, 3], 3): # r的默认值为2
print(i)3.3 combinations
函数作用:生成长度为r的元组,结果有序且元素不重复。
语法:(class) combinations(iterable: Iterable[_T@__new__], r: Literal[2])
import itertools
for i in itertools.combinations([1, 2, 3], 3):
print(i)3.4 combinations_with_replacement
函数作用:生成长度为r的元组,结果有序且允许元素重复。
import itertools
for i in itertools.combinations_with_replacement([1, 2, 3], 3):
print(i)以上列举了部分常用的迭代器函数,若需深入了解其他功能,请参考官方文档。
到此这篇关于Python中itertools简介使用介绍的文章就介绍到这了,更多相关Python中itertools内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









