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