1 of 20

Опрацювання елементів списку

Нова українська школа

Урок 47

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 20

Опрацювання елементів списку

Методи опрацювання списків у Python надають багато корисних можливостей для роботи зі списками,

дозволяючи додавати, видаляти, сортувати та здійснювати інші операції над елементами списку.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

3 of 20

Опрацювання елементів списку

Але є такі види задач, для розв’язування яких цих методів недостатньо. Наприклад, якщо нам потрібно:

  • змінити значення всіх елементів списку за певним правилом
  • виконати певні дії над елементами списку, які відповідають деякій умові

Слід у циклі перебрати всі елементи списку.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

4 of 20

Перебір елементів списку

Опрацювання елементів списку зручно виконувати в циклі, де параметр циклу послідовно набуває значень елементів списку або їх індексів. Розгляньмо це на прикладі виведення списку на екран:

  1. Послідовно звертатися до елементів за їхніми індексами.

У такому випадку потрібно знати кількість елементів у списку або визначати її функцією len()

a = [2, 5, 14, 62, -5]

for i in range(len(a)):

print(a[i])

Опис

Приклад

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

5 of 20

Перебір елементів списку

Продовження…

  1. Перебрати всі наявні в списку елементи. Застосовується, коли не потрібно змінювати значення елементів списку

for item in a:

print(item)

Опис

Приклад

Як бачимо, лише перший спосіб — звернення за індексом — дозволяє змінювати значення елементів списку.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

6 of 20

Опрацювання елементів списку

Розглянемо алгоритми опрацювання списків на прикладах.

Заміна значень елементів списку

1) У ботанічному саду ростуть 3 магнолії, 5 яблунь, 4 груші, 6 каштанів, 2 сливи і 1 персикове дерево. Число дерев кожного виду занесено до списку tree: Садівники вирішили збільшити кількість дерев кожного виду вдвічі. Як змінити значення елементів списку tree?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

7 of 20

Опрацювання елементів списку

Алгоритм розв'язування задачі: перебрати елементи списку; змінити значення кожного елемента за заданим правилом.

Програмний код

Результат

[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

8 of 20

Опрацювання елементів списку

2) Садівники хочуть збільшити на 3 кількість дерев, число яких менше за 4. Як змінити значення елементів списку tree?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

9 of 20

Опрацювання елементів списку

Алгоритм розв’язування задачі: перебрати елементи списку; якщо черговий елемент або його індекс відповідає деякій умові, змінити його значення за заданим правилом.

Програмний код

Результат

[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

10 of 20

Опрацювання елементів списку

Визначення кількості елементів списку із заданою властивістю

3) Як садівники можуть з’ясувати, скільки видів дерев у саду представлено у недостатній кількості — не більше 3 дерев?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

11 of 20

Опрацювання елементів списку

Алгоритм розв’язування задачі: надати змінній-лічильнику значення 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

12 of 20

Опрацювання елементів списку

Знаходження суми елементів із заданою властивістю

4) Садівники хочуть знайти загальну кількість дерев, вид яких представлений не менш ніж 4 деревами.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

13 of 20

Опрацювання елементів списку

Алгоритм розв’язування задачі: надати змінній для підрахунку суми значення 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

14 of 20

Опрацювання елементів списку

Під час перебору значень елементів списку може перевірятися, чи є значення кратним деякому числу, чи є число додатним або від’ємним, чи потрапляє значення у вказаний числовий проміжок та інші умови, обумовлені поставленою задачею.

Поділимо на два парні елементи списку

Програмний код

Результат

[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

15 of 20

Опрацювання елементів списку

Під час перебору індексів елементів списку може перевірятися також і значення індексу елемента списку (наприклад, змінюються елементи, що стоять на парних місцях).

Замінимо нулем елементи списку а = [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

16 of 20

Питання для самоперевірки

  1. Поясніть відмінності між способами перебору елементів списку:

a) for і in range (len(a)): print(a[i]);

б) for і in a: print(i).

  1. Поясніть алгоритм заміни значень усіх елементів списку за певним правилом.
  1. На складі зберігається 20 видів товарів. До списку а занесено кількість одиниць кожного товару, до списку b — ціни цих товарів. Обчисліть загальну вартість товарів на складі.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

17 of 20

Розгадайте ребус

«Ребуси українською» © rebus1.com

Перебір

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

18 of 20

Домашнє завдання

Проаналізувати

с. 222-226

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

19 of 20

Працюємо за комп’ютером

Сторінка

226

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 37

20 of 20

Дякую за увагу!

Нова українська школа

Урок 47

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.