Python中itertools模块
一、 简介
itertools是python内置的模块,使用简单且功能强大
官方文档地址:https://docs.python.org/zh-cn/3/library/itertools.html
itertools模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用。它们一起形成了“迭代器代数”,这使得在纯Python中有可能创建简洁又高效的专用工具。
同时,itertools模块是python的内置库,我们可以直接使用,不需要进行额外的安装
这里讲解一些常用的函数,其余函数请到官方文档查看学习。
二、 使用介绍
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,打印对应值;必须手动break,count()会一直循环。
语法: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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!