itertools
## 导入 ```python from itertools import * ``` ## 无限迭代器 ### count() #### 作用 无限生成数字,可设置步长。 #### 格式 ```python count(start, step=1) ``` #### 使用示例 ```python # 打印0,-2,-4,-6... for i in count(0, step=-2): print(i) ``` ### cycle() #### 作用 无限生成字符。 #### 格式 ```python cycle(string) ``` #### 使用示例 ```python # 打印a,b,c,a,b... for i in cycle("abc"): print(i) ``` ### repeat() #### 作用 无限打印元素。 #### 格式 ```python repeat(item, n) ``` #### 使用示例 ```python # 打印a,a,a,a,a... for i in repeat("a"): print(i) # 打印b,b,b for i in repeat("b", 3): print(i) ``` ## 有限迭代器 ### chain() #### 作用 将迭代器合并。 #### 格式 ```python chain(a1, a2, a3, ....) ``` #### 使用示例 ```python # 输出a,b,c,1,2,3 for i in chain("abc", "123"): print(i) ``` ### groupby() #### 作用 把迭代器中相邻的元素按照key函数分组,当key=None时,把相邻的重复元素进行分组。 #### 格式 ```python groupby(iterable, key=None) ``` #### 使用示例 ```python # 对相邻的重复元素分组 for key group in chain("aaabbbcccdd"): print(key, group) # 对大写相同的相邻元素分组 for key group in chain("AaaBbbcCcDd", lambda x: x.upper()): print(key, group) ``` ### accumulate() #### 作用 计算迭代器,如果不指定参数函数,将会采取默认的求和函数。(实际上是对序列的顺序子序列使用func函数并返回结果,比如说max(iterable[:1]),max(iterable[:2]),max(iterable[:3])...) #### 格式 ```python accumulate(iterable, func=sum) ``` #### 使用示例 ```python # 分别对[:0],[:1],[:2]求和 for i in accumulate([1, 2, 3, 4, 5, 6], func=sum): print(i) # 求前i个元素的中最大值 for i in accumulate([1, 2, 3, 4, 5, 6], func=max): print(i) ``` ### takewhile() #### 作用 允许从迭代开始考虑一个项目,直到指定的谓词首次变为假。 #### 格式 ```python takewhile(predicate, iterable) ``` #### 使用示例 ```python # 判断是否为偶数 def func(x): return(x % 2 == 0) # 遇到奇数停止迭代 # 相当于返回2,4 for i in takewhile(func, [2, 4, 5, 6]): print(i) ``` ## 组合迭代器 ### product() #### 作用 笛卡尔积,相当于嵌套的for循环。 #### 格式 ```python product(p, q, …, repeat=1) ``` #### 使用示例 ```python # 输出ac,ad,bc,bd for i in product("ab", "cd", …, repeat=1): print(i) # 输出aa,ab,ba,bb for i in product("ab"repeat=2): print(i) ``` ### permutations() #### 作用 排列,可指定长度。 #### 格式 ```python permutations(p, r=len(p)) ``` #### 使用示例 ```python # 从序列中抽取两个元素的排列 for i in permutations("abcd", 2) print(i) ``` ### combinations() #### 作用 组合,无重复元素,可指定长度。 #### 格式 ```python combinations(p, r=len(p)) ``` #### 使用示例 ```python # 从序列中抽取两个元素的组合 for i in combinations("abcd", 2) print(i) ``` ### combinations_with_replacement() #### 作用 组合,有重复元素,可指定长度。 #### 格式 ```python combinations_with_replacement(p, r=len(p)) ``` #### 使用示例 ```python # 从序列中抽取两个元素的组合 for i in combinations_with_replacement("abcd", 2) print(i) ```
创建时间:2023-08-08
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链