Учитель объясняет новую тему Двумерный массив – это массив, в котором для задания каждого элемента требуется два индекса. Индексы в двумерном массиве определяют номер строки и номер столбца, на пересечении которых находится элемент. Запись a[і][j] обозначает элемент, который находится на пересечении строки i и столбца j. Рассмотрим прямоугольную таблицу чисел. | 0 | 1 | 2 | 3 | 4 | 0 | 1 | 2 | 37 | 8 | 9 | 1 | 5 | 4 | -4 | 1 | -5 | 2 | 0 | 2 | 4 | 5 | 8 | Эту таблицу можно представить в виде двумерного массива размерности 3 х 5. Всего в таком массиве будет 15 элементов. Рассмотрим индексы, соответствующие элементам массива. Индексы строк и столбцов начинаются с 0 и записываются в квадратных скобках. Для доступа к элементу двумерного массива индекс записывают следующим образом a[0][0]=1 a[0][1]=2 a[0][2]=37 a[0][3]=8 a[0][4]=9 a[1][0]=5 a[1][1]=4 a[1][2]=-4 a[1][3]=1 a[1][4]=-5 a[2][0]=0 a[2][1]=2 a[2][2]=4 a[2][3]=5 a[2][4]=8 В двумерных массивах число элементов каждой строки может быть разным. Данный массив не полностью заполнен Если рассмотреть данный массив, следующие элементы a[1][3], a[1][4], a[2][4] не существуют При обращении к ним будет выведена ошибка | 0 | 1 | 2 | 3 | 4 | 0 | 1 | 2 | 5 | 8 | 9 | 1 | 5 | 4 | -4 | | | 2 | 0 | 2 | -3 | 1 | | Создание двумерного массива в Python В языке программирования Python, двумерный масив мы будем создавать двумерные массивы в виде списков Список - это набор элементов любого типа. Рассмотрим пример записи двумерного массива: A=[[11, 12,5,2], [15,6,10,5],[10,8,12,5],[12,15]] Следует отметить, что двумерный массив может иметь разное количество столбцов и строк. Пример: List1 = [11, 12, 5, 2], [‘hello’, ‘hi’, ‘salem’], [10.1, 8.2, 12.4, 3.5] (данный массив состоит из вложенных списков разных типов данных, как int, string, float) Так как массив это набор элементов одного типа, мы будем создавать списки с однотипными элементами. Для создания двумерного массива необходимо создать вложенные списки List2 = [[1, 4, -5, 7], [0, 4, 5, -2], [1, 2, 0, -3]] Данный массив состоит из 3-х строк и 4-х столбцов Заполнение двумерного массива Инициализация двумерного массива Неполное заполнение a = [[1, 4, 3],[5, 7], [6,2,8]] Будет создан массив 1 4 3 5 7 6 2 8 В данном массиве нет элемента а[1][2] 1) Заполнение массива с помощью клавиатуры M= int(input("введите количество столбцов")) N= int(input("введите количество строк")) A= [[int(input("введите элемент массива ")) for i in range(M)] for i in range(N)] 2) Заполнение массива нулями M= int(input("введите количество столбцов")) N= int(input("введите количество строк")) A= [[0 for i in range(M)] for i in range(N)] 3)Заполнение массива случайными числами. import random M= int(input("введите количество столбцов")) N= int(input("введите количество строк")) A= [[random.randint(0, 9) for i in range(M)] for i in range(N)] Вывод двумерных массивов 1) вывод двумерного массива как список print(A) Двумерный массив будет выведен в квадратных скобках [[9, 3, 6, 4, 5], [8, 2, 9, 2, 8], [4, 2, 7, 5, 7]] 2) если вся таблица заполнена числами, можно вывести массив следующим образом for i in range(3): print() for j in range(5): print(a[i][j], end=" ") Результат на экране будет таким 5 0 5 9 6 8 1 2 6 0 1 1 2 4 2 3) если таблица не полностью заполнена, тогда массив выводят следующим образом for i in range(len(A)): print() for j in range(len(A[i])): print(A[i][j], end=" ") 5 0 5 9 8 1 2 1 2 1 2 4 Len() – считает количество элементов (длину) списка. Учитель предлагает ответить на вопросы. 1) Дан массив v = [[1, 4, -5, 7], [0, 4, 5, -2], [1, 2, 0, -3]] Как указать доступ к элементу массива со значением -5 А) v[0][2] Б) v[2][0] В) v[1][3] Г) v[3][1] Д) v[0][1] 2) Дан двумерный массив. | 0 | 1 | 2 | 3 | 4 | 0 | 1 | 2 | 5 | 8 | 9 | 1 | 5 | 4 | -4 | | 2 | 2 | 0 | 2 | -3 | 1 | 3 | Какой элемент в данном массиве не существуют? А) a[1][2] Б) a[2][3] В) a[1][3] Г) a[2][2] Д) a[0][4] 3) Дана программа a = [[1, 4, 3],[5, 7], [6,2,8]] for i in range(3): print() for j in range(3): print(a[i][j], end=" ") При выполнении программы на 5-й строке выходит ошибка IndexError. Какая ошибка совершена? А) Данный массив состоит из 3-х строк и 2-х столбцов. Программист на 4-й строке запустил цикл 3 раза, вместо 2-х Б) В данном массиве нет элемента a[1][2], а программа выводит на экран массив полностью, включая элемент a[1][2] В) инициализация массива некорректна 4) Найдите соответствия А) A= [[0 for i in range(M)] for i in range(N)] Б) A= [[int(input("введите элемент массива ")) for i in range(M)] for i in range(N)] В) A= [[random.randint(0, 9) for i in range(M)] for i in range(N)] Заполняет массив через клавиатуру Заполняет массив случайными числами Заполняет массив нулями |