Python itertools Module

Python itertools include various iterators for efficient looping.

• count(begin [,step]): from begin, begin+step, begin + 2 * step, ...

>>> from itertools import *
>>> x = count(10)
>>> for n in x:
... if (n==14): break
... print(n)
...
10
11
12
13
• cycle(iterable): iterates through the iterable over and over again
>>> from itertools import *
>>> x = cycle('01')
>>> j = 1;
>>> for i in x:
... print(i,j)
... j += 1
... if (j == 7):
... break
...
0 1
1 2
0 3
1 4
0 5
1 6
• repeat(i [,n]): repeat i n times, if n is not specified, repeat i for ever
>>> from itertools import *
>>> x = repeat(1, 5)
>>> for i in x: print(i)
1
1
1
1
1
• chain(list1[],list2[], ...):
>>> from itertools import *
>>> x = chain('12','654')
>>> for i in x:
>>> print(i)
1
2
6
5
4
• compress(data, selectors): Drop data based on selectors
>>> from itertools import *
>>> x = compress([1,4,6,2,34,9],[True,False,True,True,True,False])
>>> for i in x:
>>> print(i)
1
6
2
34
• dropwhile(...): Drop data based on condition
>>> from itertools import *
>>> data = [1,4,6,2,34,9]
>>> x = dropwhile(lambda x: x<10,data) #drop till the elements >=10
>>> for i in x:
>>> print(i)
34
9
• takewhile(...): Save data based on condition
>>> from itertools import *
>>> data = [1,4,6,2,34,9]
>>> x = takewhile(lambda x: x<10,data) #drop after the elements >=10
>>> for i in x:
>>> print(i)
1
4
6
2
• groupby(iterable[,keyfunc]):
>>> from itertools import *
>>> for i, j in groupby('55333--99'):
>>> print (i,list(j))
5 ['5', '5']
3 ['3', '3', '3']
- ['-', '-']
9 ['9', '9']
• filter(contintion,data): filter data based on condition
>>> from itertools import *
>>> data = [2,6,9,3,1,5]
>>> x = filter(lambda x: x%2, data)
>>> for i in x: print (i)
9
3
1
5
• filterfalse(contintion,data): filter data based on condition is FALSE
>>> from itertools import *
>>> data = [2,6,9,3,1,5]
>>> x = filterfalse(lambda x: x%2, data)
>>> for i in x: print (i)
2
6
• islice(data,[start,]stop[,step]): filter data from start to stop with step
>>> from itertools import *
>>> data = [2,6,9,3,1,5,10,3,4,6,23]
>>> x = islice(data,3,9,2)
>>> for i in x:
>>> print (i)
3
5
3