Python Language
Многомерные массивы
Поиск…
Списки в списках
Хорошим способом визуализации массива 2d является список списков. Что-то вроде этого:
lst=[[1,2,3],[4,5,6],[7,8,9]]
здесь внешний список lst
имеет три вещи в нем. каждая из этих вещей - другой список: первый из них: [1,2,3]
, второй - [4,5,6]
а третий: [7,8,9]
. Вы можете получить доступ к этим спискам так же, как и к другому элементу списка, например:
print (lst[0])
#output: [1, 2, 3]
print (lst[1])
#output: [4, 5, 6]
print (lst[2])
#output: [7, 8, 9]
Затем вы можете получить доступ к различным элементам в каждом из этих списков таким же образом:
print (lst[0][0])
#output: 1
print (lst[0][1])
#output: 2
Здесь первое число внутри скобок []
означает получение списка в этой позиции. В приведенном выше примере мы использовали число 0
чтобы получить список в 0-й позиции, который равен [1,2,3]
. Второй набор []
скобок означает, что элемент находится в этой позиции из внутреннего списка. В этом случае мы использовали как 0
и 1
-ю позицию в списке, который мы получили, - это номер 1
а в 1-й позиции - 2
Вы также можете установить значения внутри этих списков так же:
lst[0]=[10,11,12]
Теперь список [[10,11,12],[4,5,6],[7,8,9]]
. В этом примере мы изменили весь первый список на совершенно новый список.
lst[1][2]=15
Теперь список [[10,11,12],[4,5,15],[7,8,9]]
. В этом примере мы изменили один элемент внутри одного из внутренних списков. Сначала мы вошли в список в позиции 1 и изменили элемент внутри него в позиции 2, которому было 6, теперь это 15.
Списки в списках в списках в ...
Это может быть расширено. Вот трехмерный массив:
[[[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]]]
Как очевидно, это становится немного трудным для чтения. Используйте обратную косую черту, чтобы разбить различные размеры:
[[[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]]]
Вложенные списки, подобные этому, можно расширить до произвольно больших размеров.
Доступ аналогичен 2D-массивам:
print(myarray)
print(myarray[1])
print(myarray[2][1])
print(myarray[1][0][2])
etc.
И редактирование тоже похоже:
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.