Опрацювання елементів списку
Нова українська школа
Урок 47
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Опрацювання елементів списку
Методи опрацювання списків у Python надають багато корисних можливостей для роботи зі списками,
дозволяючи додавати, видаляти, сортувати та здійснювати інші операції над елементами списку.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Але є такі види задач, для розв’язування яких цих методів недостатньо. Наприклад, якщо нам потрібно:
Слід у циклі перебрати всі елементи списку.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Перебір елементів списку
Опрацювання елементів списку зручно виконувати в циклі, де параметр циклу послідовно набуває значень елементів списку або їх індексів. Розгляньмо це на прикладі виведення списку на екран:
У такому випадку потрібно знати кількість елементів у списку або визначати її функцією len()
a = [2, 5, 14, 62, -5]
for i in range(len(a)):
print(a[i])
Опис
Приклад
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Перебір елементів списку
Продовження…
for item in a:
print(item)
Опис
Приклад
Як бачимо, лише перший спосіб — звернення за індексом — дозволяє змінювати значення елементів списку.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Розглянемо алгоритми опрацювання списків на прикладах.
Заміна значень елементів списку
1) У ботанічному саду ростуть 3 магнолії, 5 яблунь, 4 груші, 6 каштанів, 2 сливи і 1 персикове дерево. Число дерев кожного виду занесено до списку tree: Садівники вирішили збільшити кількість дерев кожного виду вдвічі. Як змінити значення елементів списку tree?
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Алгоритм розв'язування задачі: перебрати елементи списку; змінити значення кожного елемента за заданим правилом.
Програмний код
Результат
[6, 10, 8, 12, 4, 2]
tree = [3, 5, 4, 6, 2, 1]
for i in range(len(tree)):
tree[i] = tree[i]*2
print(tree)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
2) Садівники хочуть збільшити на 3 кількість дерев, число яких менше за 4. Як змінити значення елементів списку tree?
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Алгоритм розв’язування задачі: перебрати елементи списку; якщо черговий елемент або його індекс відповідає деякій умові, змінити його значення за заданим правилом.
Програмний код
Результат
[6, 5, 4, 6, 5, 4]
tree = [3, 5, 4, 6, 2, 1]
for i in range(len(tree)):
if tree[i]<4:
tree[i] = tree[i]+3
print(tree)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Визначення кількості елементів списку із заданою властивістю
3) Як садівники можуть з’ясувати, скільки видів дерев у саду представлено у недостатній кількості — не більше 3 дерев?
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Алгоритм розв’язування задачі: надати змінній-лічильнику значення 0; перебрати елементи списку; якщо черговий елемент відповідає деякій умові, то значення лічильника збільшити на 1.
Програмний код
Результат
0
4
5
k = 3
tree = [3, 5, 4, 6, 2, 1]
k = 0; # Лічильник елементів із заданою властивістю
for i in range(len(tree)):
if tree[i] <= 3:
k = k+1 # Збільшення лічильника на 1
print(i) # Виведення індексу елемента,
print ('k =', k) # який задовольняє умову
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Знаходження суми елементів із заданою властивістю
4) Садівники хочуть знайти загальну кількість дерев, вид яких представлений не менш ніж 4 деревами.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Алгоритм розв’язування задачі: надати змінній для підрахунку суми значення 0; перебрати елементи списку; якщо черговий елемент відповідає умові, додати його значення до значення суми. Знайдемо суму елементів списку tree = [3, 5, 4, 6, 2, 1]:
Програмний код
Результат
suma = 15
tree = [3, 5, 4, 6, 2, 1]
suma = 0;
# Змінна для збереження значення суми
for item in tree:
if item >= 4: suma = suma+item
print('suma = ', suma)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Під час перебору значень елементів списку може перевірятися, чи є значення кратним деякому числу, чи є число додатним або від’ємним, чи потрапляє значення у вказаний числовий проміжок та інші умови, обумовлені поставленою задачею.
Поділимо на два парні елементи списку
Програмний код
Результат
[1, 5, 7, 31, -5]
a = [2, 5, 14, 62, -5]
for i in range(len(a)):
if a[i]%2 == 0: a [i] = a[i]//2
print(a)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Опрацювання елементів списку
Під час перебору індексів елементів списку може перевірятися також і значення індексу елемента списку (наприклад, змінюються елементи, що стоять на парних місцях).
Замінимо нулем елементи списку а = [2, 5, 14, 62, -5], що мають парні індекси:
Програмний код
Результат
[0, 5, 0, 62, 0]
а = [2, 5, 14, 62, -5]
for i in range(len(а)):
if i%2 == 0: а[i] = 0
print(а)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Питання для самоперевірки
a) for і in range (len(a)): print(a[i]);
б) for і in a: print(i).
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Розгадайте ребус
«Ребуси українською» © rebus1.com
Перебір
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Домашнє завдання
Проаналізувати
с. 222-226
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Працюємо за комп’ютером
Сторінка
226
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 37
Дякую за увагу!
Нова українська школа
Урок 47
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.