chunk

Chunker

Given a List, iterator or a Range yield the result in chunks of items

#returns lazily an iterator,range,list in chunks 
def chunker(it,size):
	rv = []	
	for i,el in enumerate(it,1) :	
		rv.append(el)
		if i % size == 0 : 
			yield rv
			rv = []
	if rv : yield rv		

Example :

: list(chunker(range(0,10),3))                                                                                                                                       
: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

: [ sum(x) for x in chunker(range(0,10),3) ]                                                                                                                         
: [3, 12, 21, 9]