Python itertools 快速熟悉+速查
本文最后更新于:2022年7月21日 下午
Python itertools 快速熟悉+速查
itertools — 为高效循环而创建迭代器的函数 — Python 3.10.5 文档
Python itertools是一个工具库,提供一些方便的迭代工具。本文提供库里面函数的简要信息以便速查。
函数名 | 用途 |
---|---|
count | range的无穷版本 |
cycle | 无穷循环迭代一个迭代器 |
repeat | 循环固定次数 |
accumulate | 每一次的结果是当前迭代值+之前的迭代值 |
chain | 拼接迭代,可以拼接tuple和list和iter来进行迭代 |
compress | 按照一个mask来迭代部分数据 |
dropwhile | 直到条件第一次为false时才开始迭代 |
takewhile | 迭代直到条件第一次为false时 |
groupby | 把AAAABBBCCAAA分组成A B C A,即返回连续的键和组,返回的组是一个迭代器 |
pairwise | 两个两个出来 |
islice | 另一种切片,但是是针对迭代器的 |
starmap | 是另一种map,每个取出的迭代值会送入一个function得到最终结果(没太看懂和map的区别) |
zip_longest | 另一种zip,但是长度是更长的那个参数,用fillvalue来填充缺失值 |
product | 多个之间全部组合 # product(‘ABCD’, ‘xy’) --> Ax Ay Bx By Cx Cy Dx Dy # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111 |
permutations | 自身排列无重复组合,r是长度,默认是最长 # permutations(‘ABCD’, r=2) --> AB AC AD BA BC BD CA CB CD DA DB DC # permutations(range(3)) --> 012 021 102 120 201 210 |
combinations | 自身排列无重复组合,只是位置不同则被看做是相同,r是长度 # combinations(‘ABCD’, 2) --> AB AC AD BC BD CD # combinations(range(4), 3) --> 012 013 023 123 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!