python标准库之itertools

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python标准库之itertools相关的知识,希望对你有一定的参考价值。

itertools库

迭代器(生成器)在python中是一种很常用的也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用。

itertools库的几种方法介绍:

itertools.accumulate:列表累加方法

>>> import itertools
>>> x = itertools.accumulate(range(10))
>>> print(list(x))
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]

itertools.chain:将多个列表合成一个列表的方法

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> a = itertools.chain(x,y)
>>> print(list(a))
[1, 2, 3, 4, 5, 6]

itertools.combinations:求列表中指定数目的元素不重复的所有组合

注:2表示的意思是求出列表中随机2个元素搭配不重复的集合

>>> x = [1,2,3,4,5]
>>> a = itertools.combinations(x,2)
>>> print(list(a))
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]

itertools.islice:对列表进行切片

注:0表示起始位置,5表示结束位置,2表示步长

>>> x = [1,2,3,4,5]
>>> a = itertools.islice(x,0,5,2)
>>> print(list(a))
[1, 3, 5]

itertools.count:计数器,可以指定起始位置和步长

注:start表示起始位置,step表示步长

>>> x = itertools.count(start=2,step=3)
>>> print(list(itertools.islice(x,5)))
[2, 5, 8, 11, 14]

itertools.cycle:循环列表或者迭代器中的数据

>>> x = itertools.cycle(‘ABCD‘)
>>> print(list(itertools.islice(x,0,10,2)))
[‘A‘, ‘C‘, ‘A‘, ‘C‘, ‘A‘]

itertools.repeat:生成一个拥有指定数量并且元素相同的迭代器

>>> print(list(itertools.repeat(‘liuwei‘,5)))
[‘liuwei‘, ‘liuwei‘, ‘liuwei‘, ‘liuwei‘, ‘liuwei‘]
#也可用下面的方法生成相同元素的列表
>>> item = ["liu"]*5
>>> print(item)
[‘liu‘, ‘liu‘, ‘liu‘, ‘liu‘, ‘liu‘]

其它还有很多,用到的时候再进行总结

本文出自 “激情燃烧的岁月” 博客,请务必保留此出处http://liuzhengwei521.blog.51cto.com/4855442/1919807

以上是关于python标准库之itertools的主要内容,如果未能解决你的问题,请参考以下文章

Python常用标准库之fileinput

Python常用标准库之fileinput

python标准库之collections

python自带性能强悍的标准库 itertools

Python标准库之Sys模块使用详解

Python基础 | time random collections itertools标准库详解