Estructura para una tabla?

Miquel Llover miquel en llover.org
Mie Jun 5 21:47:39 CEST 2002


Ok!!!! Ahora ya ordena como quería, sólo una cosa extraña... cuando hago:

print pedidos_por_pieza

parece que no me sigue lo que había definido en __repr__ (me añade [ , , , 
]). Es que pedidos_por_pieza ya no es del mismo tipo que pedidos y utiliza 
otro __repr__?

Estoy empezando a odiar/amar Python!!!!!!

Miquel

At 21:19 05/06/02, you wrote:
>El mié, 05-06-2002 a las 21:01, Miquel Llover escribió:
> > At 20:03 05/06/02, you wrote:
> > > > Hola de nuevo!
> > > >
> > > > Parece que ya me funciona, pues tenía un error en el nombre del
> > > > diccionario.
> > > > Si en vez de ordenar una lista de pedidos, lo que quisiera es que me
> > > > devolviera una lista de pedidos ordenada pero sin alterar la
> > > > original, como
> > > > lo debería hacer? He intentado lo siguiente:
> > > >
> > > >      def ordena_pieza(self):
> > > >          comp_pieza = pedido.compara("pieza")
> > > >          l_aux = self.l
> > > >          return l_aux.sort(comp_pieza)
> > > >
> > > > Pero continua modificandome la lista de pedidos original. Como debería
> > > > hacer la copia?
> > >
> > >ya habrás deducido que el metodo .sort(...) de las listas ordenan en el
> > >lugar.
> > >
> > >pero veo también que Python te ha mostrado su verdadera cara! :-D
> > >
> > >l_aux = self.l NO copia la lista, solo estas tomando otra referencia
> > >a la misma lista. la forma mas directa de copiar una lista es:
> > >
> > >l_aux = self.l[:]
> > >
> > >o sea, mediante una "rebanada" (slice) de la lista que abarca toda la
> > >lista.
> >
> > Vale, el método me queda de la siguiente forma:
> >
> >        def ordena_pieza(self):
> >            comp_pieza = pedido.compara("pieza")
> >            l_aux = self.l[:]
> >            return l_aux.sort(comp_pieza)
> >
> > Pero si hago:
> >
> > # Me muestra el contenido de la lista (antes he definido el método 
> __repr__
> > como he visto
> > # que hacía Chema; la mar de práctico!)
> >
> > print pedidos
> >
> > # Entiendo que el método de ordenar me devuelve una lista de pedidos 
> ordenada
> > # que asigno a otra variable lista_de_pedidos
> >
> > pedidos_por_pieza = pedidos.ordena_pieza()
> >
> > # Aqui me muestra "None"!!!!!!!!!!!!!!
> > print pedidos_por_pieza
> >
> > ¿Qué hago mal?
> >
> > Gracias,
> >
>sort sólo ordena y no devuelve nada, para enfatizar que la ordenación se
>hace sobre la propia lista argumento. Creo que lo correcto es:
>
>             l_aux = self.l[:]
>             l_aux.sort(comp_pieza)
>             return l_aux
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo.py/python-es

------------------------------------------------
Miquel Llover
<miquel en llover.org>
------------------------------------------------






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