Gran problema de listas

Pablo Rey Sobral pabloreysobral en gmail.com
Mie Dic 22 06:08:50 CET 2004


On Tue, 21 Dec 2004 18:16:57 -0500, Carlos Eduardo Sotelo Pinto
<csotelop en yahoo.es> wrote:
> Hola gente tengo tres listas y no se como manejarlas
> sucede lo siguiente
> tengo las lista1= [codigo,cantidad, precio]
> luego tengo la lista2=[codigo,cantidad, precio]
> y una lista final
> el problema es el diguiente
> primero adiciono la lista 1 a la listafinal, y luego la lista 2
> comparando que los codigos sean diferente, si son iguales los sumo en la
> lista total

El código que tienes abajo no soy capaz de entenderlo.
Para hacer lo que dices:

lista1 = [(cod, pre, can), (cod, pre, can), .....]
lista2 = [(cod, pre, can), (cod, pre, can), .....]

res = lista1
for x in lista2:
    for y in res:
         if y[0] = x[0]:
               y[3] += x[3]
               break             # nos vamos ya que se supone que la
lista1 tiene códigos únicos

Seguramente se pueda hacer igual de bien con menos código y alguna
funcioncilla tipo map y una lambda o algo así.

> la idea es que estas listas son independientes, pero resulta un gran
> problema que cuando termino la lista1 es igual a la lista final
> este es mi codigo
> 
> self.Services = None
>         self.Services = []
>         print self.PrdHasFall
> 
>         for p in self.PrdHasFall:
>             self.Services.append(p)
> 
>         if self.Products:
>             for r in self.Products:
>                 f=0
>                 for s in self.Services:
>                     print self.PrdHasFall
>                     if s[0] == r[0]:
>                         if s[3] >= 0:
>                             s[3] = int(s[3]) + int(r[3])
>                         f=1
>                 if f==0:
>                     self.Services.append(r)
>                     print self.PrdHasFall + "---"
> 
>         print self.PrdHasFall
>         self.lstProducts.Clear()
>         Total = 0
>         print'----'
>         for x in self.Services:
>             self.lstProducts.Append(str(x[1])+'-'+str(x[2]), x[0])
>             Total = Total + (int(x[2]) * int(x[3]))
>         self.txtProductTotal.SetValue(str(Total))
> 
> self.txtContractTotal.SetValue(str(Total+int(self.txtFallTotal.GetValue())))
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




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