Python Language
Flerdimensionella matriser
Sök…
Listor i listor
Ett bra sätt att visualisera en 2d-grupp är som en lista med listor. Något som det här:
lst=[[1,2,3],[4,5,6],[7,8,9]]
här har den yttre listan lst
tre saker i sig. var och en av dessa saker är en annan lista: Den första är: [1,2,3]
, den andra är: [4,5,6]
och den tredje är: [7,8,9]
. Du kan komma åt dessa listor på samma sätt som du kommer åt ett annat annat element i en lista, så här:
print (lst[0])
#output: [1, 2, 3]
print (lst[1])
#output: [4, 5, 6]
print (lst[2])
#output: [7, 8, 9]
Du kan sedan komma åt de olika elementen i var och en av dessa listor på samma sätt:
print (lst[0][0])
#output: 1
print (lst[0][1])
#output: 2
Här betyder det första numret inuti []
parenteserna att få listan i den positionen. I exemplet ovan använde vi antalet 0
för att få listan i 0: e position som är [1,2,3]
. Den andra uppsättningen med []
konsoler betyder att få objektet i den positionen från den inre listan. I det här fallet använde vi både 0
och 1
den 0: e positionen i listan vi fick är nummer 1
och i 1: a platsen är det 2
Du kan också ställa in värden i listorna på samma sätt:
lst[0]=[10,11,12]
Nu är listan [[10,11,12],[4,5,6],[7,8,9]]
. I det här exemplet ändrade vi hela den första listan till att vara en helt ny lista.
lst[1][2]=15
Nu är listan [[10,11,12],[4,5,15],[7,8,9]]
. I det här exemplet ändrade vi ett enda element inuti en av de inre listorna. Först gick vi in i listan på position 1 och ändrade elementet inom det på position 2, som var 6 nu är det 15.
Listor i listor i listor i ...
Detta beteende kan förlängas. Här är en tredimensionell matris:
[[[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]]]
Som antagligen är uppenbart blir det lite svårt att läsa. Använd bakstreck för att bryta upp de olika dimensionerna:
[[[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]]]
Genom att häcka listorna så här kan du utvidga till godtyckligt höga dimensioner.
Åtkomst liknar 2D-matriser:
print(myarray)
print(myarray[1])
print(myarray[2][1])
print(myarray[1][0][2])
etc.
Och redigering är också liknande:
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.