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.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow