me he perdido

Esteban Manchado Velázquez zoso en demiurgo.org
Mie Mayo 21 14:04:28 CEST 2003


On Wed, May 21, 2003 at 12:58:58PM +0100, Esteban Manchado Velázquez wrote:
> [...]
>    Supongo que algo parecido a (perdonen si digo una barbaridad, generalmente
> programo en Perl :-P ):
> 
>    while len(lista) > 0:
>       (x, y, z) = (lista.pop(0), lista.pop(0), lista.pop(0))
>       print x, y, z
> 
> Lo malo es que tienes que hacer una copia de la lista antes (algo como «lista2
> = lista[:]»).

   Me respondo a mí mismo: te di la solución para tres elementos, como habrás
visto. Tenía que haber leído mejor el mensaje :-)

   Otra cosa: también puedes hacerlo llevando una cuenta de índices, si la
lista es muy grande y lo vas a hacer muchas veces (porque sería bastante
ineficiente la copia de la lista y el borrar elementos).

   Supongo que algo así (sin probar):

   cont = 0
   limite = len(lista)-2
   while cont < limite:
      print lista[cont], lista[cont+1]
      cont += 2

-- 
Esteban Manchado Velázquez <zoso*demiurgo*org> - http://www.demiurgo.org
No software patents in Europe! - eurolinux.org - proinnova.hispalinux.es
Join Amnesty International - http://www.amnesty.org/actnow




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