python标准库之itertools

itertools库

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

itertools库的几种方法介绍:

itertools.accumulate:列表累加方法

1
2
3
4
>>> import itertools
>>> x = itertools.accumulate(range(10))
>>> print(list(x))
[0136101521283645]

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

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

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

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

1
2
3
4
>>> x = [1,2,3,4,5]
>>> a = itertools.combinations(x,2)
>>> print(list(a))
[(12), (13), (14), (15), (23), (24), (25), (34), (35), (45)]

itertools.islice:对列表进行切片

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

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

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

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

1
2
3
>>> x = itertools.count(start=2,step=3)
>>> print(list(itertools.islice(x,5)))
[2581114]

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

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

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

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

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

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1919807如需转载请自行联系原作者


weilovepan520

上一篇:《C和C++程序员面试秘笈》——1.2 看代码写输出—C++域操作符


下一篇:《C++语言入门经典》一1.3 如何使用本书代码