Python Language
Tablice wielowymiarowe
Szukaj…
Listy na listach
Dobrym sposobem na wizualizację tablicy 2d jest lista list. Coś takiego:
lst=[[1,2,3],[4,5,6],[7,8,9]]
tutaj zewnętrzna lista lst
ma trzy rzeczy w nim. każda z tych rzeczy jest inną listą: pierwsza to: [1,2,3]
, druga to: [4,5,6]
a trzecia to: [7,8,9]
. Możesz uzyskać dostęp do tych list w taki sam sposób, jak do innego elementu listy, takiego jak ten:
print (lst[0])
#output: [1, 2, 3]
print (lst[1])
#output: [4, 5, 6]
print (lst[2])
#output: [7, 8, 9]
Następnie możesz uzyskać dostęp do różnych elementów na każdej z tych list w ten sam sposób:
print (lst[0][0])
#output: 1
print (lst[0][1])
#output: 2
Tutaj pierwsza liczba w nawiasach kwadratowych []
oznacza, że lista znajduje się w tej pozycji. W powyższym przykładzie użyliśmy liczby 0
aby uzyskać listę na pozycji 0, czyli [1,2,3]
. Drugi zestaw nawiasów []
oznacza uzyskanie pozycji w tej pozycji z wewnętrznej listy. W tym przypadku użyliśmy zarówno 0
jak i 1
a 0
pozycja na liście, którą otrzymaliśmy, to liczba 1
a na 1. pozycji jest to 2
Możesz również ustawić wartości na tych listach w ten sam sposób:
lst[0]=[10,11,12]
Teraz lista to [[10,11,12],[4,5,6],[7,8,9]]
. W tym przykładzie zmieniliśmy całą pierwszą listę na całkowicie nową listę.
lst[1][2]=15
Teraz lista to [[10,11,12],[4,5,15],[7,8,9]]
. W tym przykładzie zmieniliśmy pojedynczy element na jednej z wewnętrznych list. Najpierw weszliśmy na listę na pozycji 1 i zmieniliśmy element w niej na pozycji 2, która była 6, teraz jest 15.
Listy na listach na listach w ...
To zachowanie można rozszerzyć. Oto trójwymiarowa tablica:
[[[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]]]
Jak zapewne jest oczywiste, staje się to trochę trudne do odczytania. Użyj ukośników odwrotnych, aby rozbić różne wymiary:
[[[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]]]
Zagnieżdżając listy w ten sposób, można rozszerzyć do dowolnie wysokich wymiarów.
Dostęp jest podobny do tablic 2D:
print(myarray)
print(myarray[1])
print(myarray[2][1])
print(myarray[1][0][2])
etc.
Edycja jest również podobna:
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.