Як і в інших мовах програмування, Python має аналог масивів.
Через те що Python - динамічна мова програмування. Саме тому вона має списки. Вони дозволяють зберігати різні типи даних у одній змінній, що відокремлюються комою при написанні. Дані беруть у квадратні дужки.
list=[<e1>,<e2>,<e3>]
Давайте створимо наприклад, список покупок:
to_buy=["Яблуко","Груша","Полуниця","Малина","Морква"]
Щоб почати "перибирання" списку, можна скористатися for.
for product in to_buy:
print(product)
Таким чином, виводиться поелементно кожен продукт зі списку. Звісно, ми можемо з ними взаємодіяти, видаляти елементи, створювати нові, заміняти старі та ще багато чого.
to_buy.append("Собачий корм") #додання елементу до списку
print(len(to_buy)) # функція len повертає ціле число - кількість елементів у списку.
Оскільки ми додали до списку собачий корм і елементів стало шість, то виводиться число 6. За допомогою .len() також можна порахувати кістькість символів у рядку. Тобто, print(len("слово"))
поверне нам число 5 - п'ять букв.
Купивши грушу, нам не знадобиться її мати у списку покупок. Щоб її прибрати, потрібно використати метод .pop(). Він приймає ціле число - номер елемента у списку. Оскільки груша друга по-людськи, але мовою Python, вона є 1-м елементом. Тому вказуємо
to_buy.pop(1)
Давайте уявимо, що список продуктів має понад 20 елементів. Ми точно пам'ятаємо, що наприклад, нам необхідно купити хліб. Ми також можемо його прибрати після покупки. Для цього є remove(), що приймає значення елементу. Тому використаємо
to_buy.remove("Хліб")
Якщо ми купляємо все в одному супермаркеті, то щоб не видаляти по-одному, можна очистити список. Для цього використаємо
to_buy.clear()
Python має зрізи, які можна використовувати не тільки для списків, а й для рядків (оскільки вони являються списком символів). Їх можна уявити як нарізані шматочки, коженя з яких є елементом списку. На місці Python, ми обираємо з якого по який шматочок з певним кроком будемо їх брати та повертати у певну змінну, тощо. Використовувати дуже легко. Записується у квадратних дужках після змінної зі списком, роздылюються параметри двокрапкою:
list[<початок>:<кінець не включно>:<крок>]
Наприклад list[3:8:2] при list=спискок чисел від 0 до 15, виводиться [3, 5, 7], тобто від третього елемента у списку, до 8 не включно з кроком 2
Найпростіший приклад матриці - звичайна таблиця. Матриця - це двовимірний список з рядків та стовбців. Щоб створити, наприклад, таблицю 3х3, знадобиться задати три списки, що складаються з трьох елементів кожен. Але пропоную не просто створити, а й автоматизувати цей процес.Пропоную створити матрицю панелі цифр на клавіатурі (або як на калькуляторі)
1. Заповнення списку
a=[]
for i in range(9,0,-3):
a.append([i-2,i-1,i])
2. Виводимо результат у красивому вигляді
for i in a:
for j in i:
print(j,end=" ")
print()
У результаті, програма виводить нам
7 8 9
4 5 6
1 2 3
Подивимося на клавіатуру звичайного калькулятора і переконуємося, що отримали бажаний результат
Матриці можна використовувати у розв'язанні задач на шахи, аналізу табличних данних та ін.
Якщо визвати сенсорну клавіатуру Windows, побачимо що вертикально, порядок інший. Давайте трохи змінимо наш код.
Існує метод reverse() що розвертає список. Тому ми можемо перед циклом виводу додати a.reverse()
1 2 3
4 5 6
7 8 9
Але як вивести список у зворотньому порядку, не змінюючи його? Для цього можна використати трюк, використовуючи зрізи, які ми щойно вивчили. Давайте, приберемо a.reverse() і цикл виводу даних. Тепер, порівняємо результати між a та a[::-1]
print(a,a[::-1],sep="\n")
Можливо, на вигляд, не зрозуміло, але нічого складного немає:
Порівняємо результати. Як бачимо, все вийшло
[[7, 8, 9], [4, 5, 6], [1, 2, 3]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Таким чином, якщо ми повернемо цикл виводу та замінимо a на a[::-1], то після виводу, а залишиться не розвернутим.
Існують й інші методи, які ми не розглянули:
min(), max(), які ми розглядали в уроці про типи даних, можуть приймати в себе, як аргумент, список чисел. Таким чином, вони повернуть відповідно, мінімальне та максимальне число зі списку.
sum() прийме список чисел та поверне ціле число, що є сумою значень чисел у списку
Як перетворити рядок даних у список? На олімпіадах дані для вводу записують в один рядок через пробіл: "2 3 4 5 7" нам потрібно перевести в [2,3,4,5,7]. Для цього, записуємо
a=[int(i) for i in <змінна, що приймає рядок>]