无穷迭代
方法 | 描述 |
---|
count(start, [step]) | count(10,1) --> 10 11 12 13 14 |
cycle§ | cycle(‘ABCD’) --> A B C D A B C |
repeat(elem [,n]) | repeat(10, 3) --> 10 10 10 |
有限迭代
方法 | 描述 |
---|
accumulate(p [,func]) | 每个位置累加求和:accumulate([1,2,3,4,5]) --> 1 3 6 10 15 |
chain(p, q, …) | 高级的list的extend:chain(‘ABC’, ‘DEF’) --> A B C D E F |
chain.from_iterable(iterable) | chain.from_iterable([‘ABC’, ‘DEF’]) --> A B C D E F |
compress(pred, seq) | 选择器:compress(‘ABCDEF’, [1,0,1,0,1,1]) --> A C E F |
dropwhile(pred, seq) | 高级过滤器:dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1 |
filterfalse() | 高级过滤器:filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8 |
groupby(iterable[, key]) | |
islice(seq, [start,] stop [, step]) | 高级切片:islice(‘ABCDEFG’, 2, None) --> C D E F G |
starmap(func, seq) | 高级map:starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000 |
takewhile(pred, seq) | 高级:takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4 |
tee(it, n) | |
zip_longest() | 高级zip:zip_longest(‘ABCD’, ‘xy’, fillvalue=’-’) --> Ax By C- D- |
组合combination
方法 | 描述 |
---|
product(‘ABCD’, repeat=2) | AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD |
permutations(‘ABCD’, 2) | AB AC AD BA BC BD CA CB CD DA DB DC |
combinations(‘ABCD’, 2) | AB AC AD BC BD CD |
combinations_with_replacement(‘ABCD’,2) | AA AB AC AD BB BC BD CC CD DD |
参考:
https://docs.python.org/3/library/itertools.html