迭代器模块:itertools
作者:Shawn
python3.7
文档:
https://docs.python.org/3/library/itertools.html
重写基于https://blog.csdn.net/weixin_41084236/article/details/81179704
- itertools中有许多有意思的功能,使用得当可以节约大量生命。
无限迭代器
count()
itertools.count(start=0,step=1)
- 返回以start为开头,步长step的值。
>>> for i in itertools.count():
print(i)
0
1
2
3
4
...
cycle():复读机一号
itertools.cycle(iterable)
- 保存对象的副本,并无限重复返回每一个元素。
>>> for i in itertools.cycle([2,3,4,5]):
print(i)
2
3
4
5
2
3
4
5
2
...
repeat():复读机二号
itertools.repeat(object[,times])
- 重复返回对象[次]。
>>> for i in itertools.repeat('雪碧'):
print(i)
雪碧
雪碧
雪碧
雪碧
雪碧
...
终止于最短输入的迭代器
accumulate()
itertools.accumulate(iterable[, func])
- 对iterable对象内的每个元素依次做func运算,更新并输出。
- func要求为二目运算,详见operator模块
>>> for i in itertools.accumulate([1,2,3,4],operator.add):
print(i)
1
3
6
10
>>> for i in itertools.accumulate([1,2,3,4],operator.mul):
print(i)
1
2
6
24
chain()
itertools.chain(*iterables)
- 将所有输入拼接输出。
>>> a='把你的心'
>>> b=' 我的心'
>>> c=' 串一串'
>>> for i in itertools.chain(a,b,c):
print(i)
把
你
的
心
我
的
心
串
一
串
chain.from_iterable()
chain.from_iterable(iterable)
- 将单个iterable中的所有元素拼接输出。
>>> d=['串一株幸运草',' 串一个同心圆']