Тема: Алгоритми опрацювання табличних величин: знаходження суми значень елементів; суми або кількості значень елементів, що задовольняють заданим умовам, пошук заданого елемента
У мові Python відповідні зручні структури даних називають послідовностями. Це рядки (символів), списки, масиви, значення функції range і ще деякі інші об'єкти.
Списку (у мові програмування) відповідає (у математиці) послідовність, члени якої занумеровано невід'ємними цілими числами, починаючи з 0, з нефіксованими довжиною та типом елементів.
Оператори й функції для роботи зі списками (s і t у позначеннях нижче)
- len(s) — довжина послідовності s;
x in s — результат перевірка приналежності значення x послідовності s — True або False. У останніх версіях Python можна перевіряти приналежність підрядка рядку;
x not in s — not (x in s) — результат заперечення x in s;
s[j] — повертає значення j-го елемента списку s або (len(s)+j)-й при j < 0;
s[j]= x — надання елементу з номером j списку s значення x;
s[i:j:d] — зріз зі списку s від елементів i-го до j-го з кроком d;
min(s) — найменший елемент s;
max(s) — найбільший елемент s;
s + t — результат «дописуванням» до списку s списку t;
s*n або n*s — результат n-кратного повторення списку s. При n ≤ 0 — порожня послідовність.
Наприклад,
[1, 2, 3] + [4, 5] == [1, 2, 3, 4, 5]
[4, 5]*3 = [4, 5, 4, 5, 4, 5]
Методи списків
- append(x) — додає елемент зі значенням x в кінець послідовності;
clear — очищує список;
copy — створює копію списку;
count(x) — повертає кількість елементів зі значенням x;
extend(s) — розширює список, додаючи до кінця поточного списку список s;
index(x[,j0[,j1]]) — повертає найменший iндекс елемента зі значенням x [для номерів елементів від j0 [до j1]]. Породжує виключення ValueError, якщо елемента з таким значенням не знайдено;
insert(j,x) — вставляє на місце з номером j елемент зі значенням x;
pop(j) — повертає значення елемента з номером j, видаляючи його з послідовності;
remove(x) — вилучає елемент з найменшим iндексом серед тих, що мають значення x. Породжує виключення ValueError, якщо елемента з таким значенням не знайдено;
reverse() — зміняює порядок елементів на зворотний;
sort([f]) — упорядковує елементи з можливістю використання власної функції порівняння f;
Способи виведення елементів списку
Вказівка print(a) виводить елементи списку a у квадратних дужках через кому.
Цикл for можна організувати двома способами:
змінюючи індекс j, виводити елемент списку з індексом j.
for i in range(len(A)): print(A[i], end = ' ')
(тут і далі запис end = ' ' означає вставлення пробілу);
змінюючи не індекс елемента списку, а його значення.
for elem in A: print(elem, end = ' ')
В останньому прикладі бачимо істотну відмінність мови Pytnon від мов-попередників: цикл for надає зручний спосіб перебрати саме елементи послідовності, а не індекси елементів.
Розглянемо приклад створення списку d цілих чисел з цифри рядка s
s = 'ab12c59p7dq' d = [] for с in s: if '1234567890'.find(с) != -1: d.append(int(с)) print(d)
з таким результатом виведення: [1, 2, 5, 9, 7].
Способи створення й наповнення списків
Використати багатократне повтороення списку для заповнення списку одними й тими самими значеннями. Наприклад,
n = 999 a = [0] * n
Перелічити елементи списку у квадратних дужках. Наприклад,
Primes = [2, 3, 5, 7, 11, 13] Rainbow = ['червоний','оранжевий','жовтий','зелений','блакитний','синій','фіолетовий']
Заповнити список згідно з формулою
[вираз for змінна in послідовність]
де послідовність містить усі значення, яких набуває змінна, від якої залежить вираз. Наприклад, список квадратів усіх цифр [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] можна створити таким чином:
a = [j**2 for j in range(0,10)] print(a)
Cтворити порожній список і в кінець списку додавати елементи (по одному) за допомогою методу append, значення яких зчитувати, наприклад, з клавіатури.
a = [] # створено порожній список n = int(input()) # зчитино кількість елементів списку for i in range(n): a.append(int(input()))
Змінну n використано лише для зручності сприйняття — див. змінений приклад.
A = [] for i in range(int(input())): A.append(int(input()))
Можна по-іншому організувати процес прочитування списків, спочатку створивши список з потрібного числа елементів.
A = [0] * int(input()) for i in range(len(A)): A[i] = int(input())
Зчитати з файлу
f=open('input.txt','r') a=[] for i in range(int(f.readline())): # зчитати кількість елементів a.append(int(f.readline())) # зчитати по 1 числу у рядку й заповнити масив print(a) # вивести масив а b=f.readline().split() # зчитати рядок тексту і утворити масив b з його слів print(b) # вивести масив b
- Заповнити випадковими числами з використанням функциї randrange з модуля random:
from random import randrange n = 10 a = [randrange(1, 10) for i in range(n)]
(приклад подано для знаходження суми парних елементів лінійного масиву a, заповненого випадковими числами)
import random n=9 amax=99 a=[] for j in range(n): a.append(random.randint(1,amax)) print(a) print('Сума парних чисел з поданих дорівнює') s=0 for j in range(n): if a[j]%2==0: s+=a[j] print(s)