itertools
无限序列只有在for迭代时才会无限地迭代下去,如果只是创建了一个迭代对象,它不会事先把无限个元素生成出来,也不可能在内存中创建无限多个元素。
itertools.count(1):可以创建无限的迭代器,无法自动停止,只能人为手动停止。
itertools.cycle(‘ABC’):会把传入的序列无限重复下去,比如这个就会重复输出ABC。
itertools.repeat(‘A’, 3):未指定第二个参数时可以无限重复下去,若指定了第二个参数,则以该指定次数重复输出。
itertools.takewhile():可根据条件判断来截取出一个有限的序列,通常以lambda作为限定条件判断,比如:itertools.takewhile(lambda x: x <= 10, itertools.count(1))。第一个参数为限定条件,第二个为无限序列。
itertools.chain(迭代1, 迭代2):把一组迭代对象串联起来。
itertools.groupby():把迭代器中相邻的重复元素挑出来放在一起.
sum4 = itertools.groupby('AAAAAFFFRSEEE')
for key,value in sum4:
print(key,list(value))
输出:
A ['A', 'A', 'A', 'A', 'A']
F ['F', 'F', 'F']
R ['R']
S ['S']
E ['E', 'E', 'E']