Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2013, 10:07
Macas
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 11 años, 6 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