python有一个高级特性就是迭代器,能够提供各种各样的迭代方式,而代码却非常的简单。itertools提供了非常丰富的有关于迭代操作的函数,下面一一介绍。
再次理解可迭代对象: 迭代器产生的可迭代对象不能直接使用,比如计算,需要用for循环迭代处具体的值后才能使用。
1. 无限迭代器
1.1 count()
count()函数产生无限自然序列,由于是无限迭代,所以运行一次,产生一个加1的数。
from itertools import count
a = count(2) #迭代的起始参数
for i in a:
print(i)
运行了根本停不下来,只能手动结束,强行停止。
1.2 cycle() 将传入的序列无限的重复迭代,因而返回的是序列的元素
from itertools import cycle
a = cycle('abcde') #迭代的起始参数
for i in a:
print(i)
同样停不下来
1.3 repeat() 将传入的元素重复,如果提供重复次数,那么达到重复次数,将停止。如果不提供重复次数,将一直重复下去。
from itertools import repeat
a = repeat('abcde',6) #迭代的起始参数
for i in a:
print(i)
重复的是传入的参数
2. chain() 把可迭代对象连在一起,组成一个更大的可迭代对象。
from itertools import chain
a = chain('abcde','fghhhh')
print(a) #直接打印,只能显示迭代地址
for i in a:
print(i)
3. groupby() 把迭代器中重复元素统计出来。
from itertools import groupby
a = groupby('abcdefghhhhdfadsdfsdeewef')
for key,value in a:
print(key,list(value))