Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Obtener matriz multiplicando dos listas

Estas en el tema de Obtener matriz multiplicando dos listas en el foro de Python en Foros del Web. A partir de 2 listas dadas, quiero sacar una matriz multiplicando los elementos de las listas entre si. Esto es lo más "cerca" que llegué. ...
  #1 (permalink)  
Antiguo 13/08/2014, 21:53
 
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta Obtener matriz multiplicando dos listas

A partir de 2 listas dadas, quiero sacar una matriz multiplicando los elementos de las listas entre si.

Esto es lo más "cerca" que llegué.

Código Python:
Ver original
  1. lista1 = [6,5]
  2. lista2 = [9,5,4]
  3.  
  4. matriz = []
  5. for f in lista1:
  6.   for c in lista2:
  7.     matriz.append(f * c)
  8.  
  9. print matriz

pero me devuelve una lista, no se como hacer para que me devuelva una matriz. He intentado sacarla de otra manera, pero de momento se me agotaron las opciones, agradecería su ayuda.
  #2 (permalink)  
Antiguo 13/08/2014, 22:40
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Obtener matriz multiplicando dos listas

Solo tienes que pensarle un poquito mas. Contesta las siguientes preguntas:

¿Que es una matriz?
- (Una lista de listas)

¿Puedo meter una lista dentro de otra lista?
- Claro que si. Ejemplo [[1, 2], [3, 4]]

Ya se generar listas, ahora solo necesito anidar eso.

Código Python:
Ver original
  1. lista1 = [6,5]
  2. lista2 = [9,5,4]
  3.  
  4. matriz = []
  5. for f in lista1:
  6.   fila = []
  7.   for c in lista2:
  8.     fila.append(f * c)
  9.   matriz.append(fila)
  10.  
  11. print matriz


Mi versión corta.
Código Python:
Ver original
  1. a = [6,5]
  2. b = [9,5,4]
  3.  
  4. m = [[x*y for y in b] for x in a]

Etiquetas: ip, listas, matriz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.