Python Language
Matrices multidimensionales
Buscar..
Listas en listas
Una buena manera de visualizar una matriz 2D es como una lista de listas. Algo como esto:
lst=[[1,2,3],[4,5,6],[7,8,9]]
aquí la lista externa lst
tiene tres cosas en él. cada una de esas cosas es otra lista: la primera es: [1,2,3]
, la segunda es: [4,5,6]
y la tercera es: [7,8,9]
. Puede acceder a estas listas de la misma manera que accedería a otro elemento de una lista, como este:
print (lst[0])
#output: [1, 2, 3]
print (lst[1])
#output: [4, 5, 6]
print (lst[2])
#output: [7, 8, 9]
A continuación, puede acceder a los diferentes elementos en cada una de esas listas de la misma manera:
print (lst[0][0])
#output: 1
print (lst[0][1])
#output: 2
Aquí el primer número dentro de los corchetes []
significa obtener la lista en esa posición. En el ejemplo anterior, usamos el número 0
para obtener la lista en la posición 0, que es [1,2,3]
. El segundo conjunto de []
corchetes significa obtener el elemento en esa posición de la lista interna. En este caso, utilizamos 0
y 1
la posición 0 en la lista que obtuvimos es el número 1
y en la 1ª posición es 2
También puede establecer valores dentro de estas listas de la misma manera:
lst[0]=[10,11,12]
Ahora la lista es [[10,11,12],[4,5,6],[7,8,9]]
. En este ejemplo, cambiamos toda la primera lista para que sea una lista completamente nueva.
lst[1][2]=15
Ahora la lista es [[10,11,12],[4,5,15],[7,8,9]]
. En este ejemplo, cambiamos un solo elemento dentro de una de las listas internas. Primero ingresamos a la lista en la posición 1 y cambiamos el elemento dentro de la posición 2, que era 6 ahora es 15.
Listas en listas en listas en ...
Este comportamiento puede ser extendido. Aquí hay una matriz tridimensional:
[[[111,112,113],[121,122,123],[131,132,133]],[[211,212,213],[221,222,223],[231,232,233]],[[311,312,313],[321,322,323],[331,332,333]]]
Como probablemente sea obvio, esto se vuelve un poco difícil de leer. Usa barras invertidas para dividir las diferentes dimensiones:
[[[111,112,113],[121,122,123],[131,132,133]],\
[[211,212,213],[221,222,223],[231,232,233]],\
[[311,312,313],[321,322,323],[331,332,333]]]
Al anidar las listas como esta, puede extenderse a dimensiones arbitrariamente altas.
El acceso es similar a las matrices 2D:
print(myarray)
print(myarray[1])
print(myarray[2][1])
print(myarray[1][0][2])
etc.
Y la edición también es similar:
myarray[1]=new_n-1_d_list
myarray[2][1]=new_n-2_d_list
myarray[1][0][2]=new_n-3_d_list #or a single number if you're dealing with 3D arrays
etc.