Поняття двовимірного масиву
За навчальною програмою 2017 року
Урок 59
Інформатика 9
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Поняття двовимірного масиву
Списки корисні для опрацювання таблиць, які містять один рядок даних, наприклад таблиця опадів по місяцях за один рік.
А якщо потрібно проаналізувати кількість опадів по місяцях за кілька років?
Під час розв’язування багатьох задач доводиться працювати з таблицями, у яких кілька рядків і кілька стовпців.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Як правило, дані в комірках таблиці належать до одного типу. Такі таблиці прийнято називати двовимірними масивами.
У мові Python для опрацювання таких таблиць використовуються вкладені списки, тобто списки, кожен елемент якого у свою чергу є списком значень.
Масив називається двовимірним, якщо для задання місцеположення елемента в масиві необхідно вказати значення двох індексів.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
ПРИКЛАД 1. Збережемо дані таблиці, у змінній а.
1 | 2 | 3 | 12 |
23 | 5 | 13 | 4 |
8 | 6 | 7 | 11 |
a = [[1, 2, 3, 12], [23, 45, 13, 4], [8, 6, 7, 11]]
Кожний елемент списку а також є списком, що містить дані з одного рядка таблиці. Довжина списку len(a) = 3. Звернутися до вкладеного списку (рядка таблиці) можна за його індексом:
a[0] = [1, 2, 3, 12]
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Для перебору рядків списку використовується цикл for. Нехай b = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
Можна перебрати індекси вкладених списків – елементів списку
Можна перебрати всі наявні в списку елементи – рядки таблиці.
for i in range (len(b)):
print(b[i])
for row in b:
print(row)
[1, 2, 3, 4]
[5, 6]
[7, 8, 9]
При використанні обох варіантів циклу в консоль буде виведено:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Положення окремого елемента в таблиці визначається 2 індексами:
номером рядка
номером стовпця
і
Отже, щоб звернутися до елемента у вкладеному списку, слід указати два індекси.
Елемент, розташований на перетині і-го рядка і j-го стовпця масиву А, позначають.
Запам’ятайте, що у двовимірних масивах перший індекс завжди вказує на номер рядка, а другий — на номер стовпця.
А[і] [j]
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Елементи списку а з прикладу 1 мають такі значення:
1 | 2 | 3 | 12 |
23 | 5 | 13 | 4 |
8 | 6 | 7 | 11 |
a[0][0] == 1
a[0][1] == 2
a[1][2] == 13
a[1][1] == 5
a[2][2] ==7
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Головну діагональ масиву утворюють елементи, для яких:
i == j
Послідовно отримати доступ до всіх елементів двовимірного масиву можна за допомогою вкладених циклів:
зовнішній цикл перебирає вкладені списки (рядки таблиці),
внутрішній цикл перебирає елементи рядка.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
ПРИКЛАД 2. Виведемо значення списку а на екран порядково, додаючи пробіл між елементами. Зовнішній цикл for i перебирає індекси елементів списку а — рядків двовимірного масиву.
Внутрішній цикл for j перебирає індекси елементів списку а[i] (і-го рядка масиву). Згадаємо, що параметр end = ' ' методу print() потрібен, щоб після виведення курсор залишився в тому самому рядку.
Оператор print() із порожнім списком виведення переводить курсор на наступний рядок.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
Програмний код
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for i in range(len(a)):
for j in range(len(a[i])):
print(a[i][j], end = ' ')
print()
1 2 3 4
5 6
7 8 9
Результат виконання
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Поняття двовимірного масиву
ПРИКЛАД 3. Щоб вивести в консоль значення двовимірного масиву b порядково, можна перебирати всі наявні у зовнішньому списку рядки та у внутрішньому циклі — всі наявні у вкладених списках елементи:
b = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in b:
for elem in row:
print(elem, end = ' ')
print()
1 2 3 4
5 6
7 8 9
Результат виконання
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Питання для самоперевірки
а) a = [[1, 2, 3, 4], [5, 6,1,1], [7, 8, 9,1]]
б) b = [[], [], []]
в) c = [[] for i in range(10)]
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Розгадайте ребус
масив
«Ребуси українською» © rebus1.com
Двовимірний
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Домашнє завдання
Проаналізувати
§ 35, с. 210-211
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Працюємо за комп’ютером
Сторінка
213
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 35
Дякую за увагу!
За навчальною програмою 2017 року
Урок 59
Інформатика 9
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.