Списки та Кортежі
Уявіть, що ви розробляєте онлайн-магазин. Вам потрібно зберігати не один товар, а тисячі. Створювати для кожного окрему змінну (`item1`, `item2`...) — неможливо. Саме тут на допомогу приходять колекції. У цьому розділі ми вивчимо два головні інструменти Python для роботи з групами об'єктів.
1 Природа списків (Lists)
Список у Python — це впорядкована послідовність елементів, яка може змінюватися. Уявіть це як поїзд, де ви можете в будь-який момент відчепити вагон, додати новий всередину або перефарбувати існуючий.
Важливо: Списки у Python є гетерогенними. Це означає, що в одному списку можуть одночасно знаходитися і числа, і рядки, і навіть інші списки.
# Створення списку з різними типами
mixed_list = [42, "Привіт", 3.14, True]
# Список може містити навіть функції або класи
data = [mixed_list, "Ще один рядок"]
2 Навігація: Індекси та Зрізи
Доступ до елементів здійснюється за їхнім номером (індексом). Пам'ятайте головне правило програмування: рахунок завжди починається з нуля.
Негативна індексація
Python дозволяє рахувати з кінця.
Індекс -1 — це останній елемент, -2 — передостанній.
Це ідеально підходить, коли ви не знаєте довжини списку, але вам потрібен останній доданий елемент.
colors = ["red", "green", "blue", "yellow"]
print(colors[0]) # red
print(colors[-1]) # yellow (останній)
# Складні зрізи [start:stop:step]
# Беремо елементи з 0 по 3 через один
print(colors[0:3:2]) # ["red", "blue"]
3 Методи: Як керувати даними
Робота зі списками — це не лише їх читання, а й активна модифікація. Python надає потужний інструментарій для цього:
Додавання елементів
.append(val)— Додає елемент у хвіст списку..insert(index, val)— Вставляє елемент у конкретне місце, "розсуваючи" інші..extend(list)— Зливає два списки в один (аналог оператора +).
Видалення елементів
.pop(index)— "Вистрілює" елемент зі списку. Видаляє його і повертає вам значення..remove(val)— Видаляє перший об'єкт з таким значенням. Якщо значення не знайдено — виникне помилка..clear()— Повністю очищує список.
colors = ["red", "green"]
colors.append("blue")
print(colors) # ["red", "green", "blue"]
colors.insert(1, "yellow")
print(colors) # ["red", "yellow", "green", "blue"]
additional_colors = ["cyan", "black"]
colors.extend(additional_colors)
print(colors) # ["red", "yellow", "green", "blue", "cyan", "black"]
4 Кортежі (Tuples): Фортеця для даних
Кортеж — це незмінний родич списку. Після створення ви не можете додати, видалити або змінити жоден його елемент.
Навіщо це потрібно?
- ✔ Безпека: дані не будуть змінені випадково іншою частиною програми.
- ✔ Швидкість: Python обробляє кортежі швидше, ніж списки.
- ✔ Пам'ять: вони займають менше місця.
# Створення кортежу
coordinates = (50.4501, 30.5234)
# Спроба зміни призведе до помилки:
# coordinates[0] = 51.0 # TypeError!
# Розпакування кортежу (Unpacking)
lat, lon = coordinates
print(f"Широта: {lat}, Довгота: {lon}")
5 Списки та Цикли: Автоматизація
Сила колекцій розкривається, коли ми комбінуємо їх із циклом for. Ми можемо перевірити кожен елемент, змінити його або відфільтрувати.
grades = [10, 5, 12, 8, 4, 11]
best_grades = []
for grade in grades:
if grade >= 10:
best_grades.append(grade)
print(f"Відмінні оцінки: {best_grades}")
List Comprehension
Професіонали в Python часто використовують "спискові вирази", щоб скоротити код ліворуч до одного рядка:
best_grades = [g for g in grades if g >= 10]
6 Багатовимірні дані (Матриці)
Списки можуть містити інші списки. Це дозволяє створювати таблиці або ігрові поля (наприклад, для шахів або хрестиків-ноликів).
# Ігрове поле (Матриця 3х3)
board = [
["X", " ", "O"],
[" ", "X", " "],
["O", " ", "X"]
]
# Доступ до елемента: [рядок][стовпчик]
print(board[0][2]) # Виведе: O
Золоте правило вибору
Якщо вам потрібен список справ, який ви будете доповнювати — використовуйте List.
Якщо вам потрібно зафіксувати координати міста або налаштування сервера, які не мають мінятися — обирайте Tuple.