Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Recorrer matriz por filas desde un punto en concreto

Estas en el tema de Recorrer matriz por filas desde un punto en concreto en el foro de Python en Foros del Web. Hola de nuevo, Necesito recorrer una lista de listas que tengo almacenada en memoria la cual almacena una matriz formada de esta menara: 0 2 ...
  #1 (permalink)  
Antiguo 18/03/2013, 10:07
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 11 años, 5 meses
Puntos: 0
Recorrer matriz por filas desde un punto en concreto

Hola de nuevo,

Necesito recorrer una lista de listas que tengo almacenada en memoria la cual almacena una matriz formada de esta menara:

0
2 0
0 2 0
0 0 2 0
0 0 0 3 0
0 3 0 0 1 0
.
.
.
etc.

Necesito guardar en otra lista los valores diferentes de 0 y el indice.
Para recorrerla por columnas no tengo problema lo que hago es decirle por cual quiero empezar y recorrerla, lo he echo de esta manera.
Código Python:
Ver original
  1. def expandir(matrizCostes,C_lista):
  2.     j=0
  3.     Lista_costes=[]
  4.     Lista_nodos=[]
  5.  
  6.     #Lista_nodos=[10,20,45,10]
  7.     print "C_lista:", C_lista
  8.     nodo_inicio=C_lista-1 # Ponemos -1 porque la matriz empieza en la posicion 0
  9.    
  10.     for i in matrizCostes[nodo_inicio]: #Recorremos la matriz de costes, nodo incio es el nodo en el que estamos
  11.        
  12.         if i!=0:
  13.            
  14.             Lista_costes.append(i)
  15.             Lista_nodos.append([j+1,C_lista])
  16.             print "La lista de nodos es",Lista_nodos
  17.  
  18.             #if eliminarCiclos(Lista_nodos)==0: #REVISAR ESTA PARTE DE AQUI, COMPRAOVAR QUE VERDADERAMENTE FUNCIONA
  19.              #   del Lista_nodos[1]
  20.                
  21.            
  22.         j=j+1
  23.  
  24.     print "\n\nLa lista de costes es: ", Lista_costes
  25.     print "\n\nLa lista de nodos es:  ", Lista_nodos

Lo que quiero una vez echo esto es recorrerla en vertical, pero desde el punto en el que estoy.

Por ejemplo si estoy en el nodo 4

1 2 3 4 5 6
1 0
2 0 2
3 0 0 3
4 0 0 1 2
5 2 0 0 1 0
6 0 0 0 2 0 0

primero recorreré esto

1 2 3 4

4 0 0 1 2

cosa que ya tengo echo, y luego recorreré esto

1 2 3 4

4 2
5 1
6 0

Un saludo
  #2 (permalink)  
Antiguo 18/03/2013, 17:31
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: Recorrer matriz por filas desde un punto en concreto

¿Como recorrer listas usando indices?

Código Python:
Ver original
  1. A = [
  2.         [1, 2, 3],
  3.         [4, 5, 6],
  4.         [7, 8, 9]
  5.     ]
  6.  
  7. n = 3 # Numero de filas
  8. m = 3 # Numero de columnas
  9.  
  10. # Recorrido de una matriz
  11. # De izquierda a derecha
  12. # De arriba hacia abajo
  13. for i in xrange(n):
  14.     for j in xrange(n):
  15.         print A[i][j],
  16.     print
  17. print
  18.  
  19. # Recorrido de una matriz
  20. # De derecha a izquierda
  21. # De arriba hacia abajo
  22. for i in xrange(n):
  23.     for j in xrange(m):
  24.         print A[i][m - j - 1],
  25.     print
  26. print
  27.  
  28. # Recorrido de una matriz
  29. # De izquierda a derecha
  30. # De abajo hacia arriba
  31. for i in xrange(n):
  32.     for j in xrange(m):
  33.         print A[n - i - 1][j],
  34.     print
  35. print
  36.  
  37. # Recorrido de una matriz
  38. # De derecha a izquierda
  39. # De abajo hacia arriba
  40. for i in xrange(n):
  41.     for j in xrange(m):
  42.         print A[n - i - 1][m - j - 1],
  43.     print
  44. print

Etiquetas: filas, lista, matriz, punto
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 13:35.