Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/09/2010, 22:46
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Multiplicación en listas

Aquí esta tu código corregido

Código Python:
Ver original
  1. def function2():
  2.     val = [[0]*size for i in range(csize)]
  3.     for i in range(csize):
  4.         aux = [] #Esto estaba mal
  5.         for j in range(size):
  6.             val[i][j] = b[i][j] * c[j]
  7.             aux.append(val[i][j])
  8.         aux2=sum(aux) #Lo tenias dentro del for j, cuando debería estar afuera
  9.         print aux2
  10.     print val

Edito: Veo que tienes un buen "Pythonic level" sigue asi.

Aquí esta tu código, pero mejorado:
Código Python:
Ver original
  1. def fun1(l1, l2):
  2.     #Asumo que l1 y l2 son de la misma longitud
  3.     size = len(l1)
  4.     aux = [l1[i] * l2[i] for i in xrange(size)]
  5.     return sum(aux), aux
  6.  
  7. def fun2(l1, l2):
  8.     #l1 es la lista de listas y l2 es c
  9.     vals = [fun1(i, l2) for i in l1]
  10.     print vals
  11.  
  12. a = [3, 2, -5, -2, 3]
  13. b = [[1, 1, 1, 2, 1], [7, 0, 3, -4, 3], [11, -6, 0, 3, -3]]
  14. c = [0, 1, 0, 1, 0]
  15. fun2(b, c)

Veo que tienes un buen "Pythonic level" sigue asi