listas

Chema Cortes py en ls-l.org
Lun Jun 13 14:03:39 CEST 2005


Francesc Altet escribió:
> Algo rápido:
> 
> In [18]:a=[ 2,3,4,5,6,1,2,3,4]
> 
> In [19]:def liter(lst, n):
>    ....:     for i in range(0, len(lst), n):
>    ....:         yield tuple(lst[i:i+n])
>    ....:
> 
> In [20]:[g for g in liter(a,3)]
> Out[20]:[(2, 3, 4), (5, 6, 1), (2, 3, 4)]

Buscando alternativas, con python 2.4 se podría utilizar una expresión
generadora:

def liter(lst, n):
  return (tuple(lst[i:i+n]) for i in xrange(0,len(lst),n))



PD: es curioso que coincida esta solución con una nueva receta del cookbook:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/425044




Más información sobre la lista de distribución Python-es