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.


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow