10.1 Кортеж і його властивості
Кортежі відносяться до чотирьох вбудованих типів колекцій в Python.
Як ти вже знаєш, у Python є декілька вбудованих типів даних, які дозволяють зберігати групи об'єктів. Це list — список, tuple — кортеж, set — множина, dictionary — словник. Сьогодні ми розглянемо другий і один з найпростіших з них — кортеж.
Кортеж (tuple) дозволяє зберігати декілька елементів. У кожного елемента є свій порядковий номер, що робить кортеж впорядкованим — ordered. У цьому він схожий на список.
Змінювати кортеж не можна — одного разу створений, він залишається незмінним, що робить його ідеальним для зберігання даних, які не повинні змінюватися в програмі. Тому його друга характеристика — незмінність (immutable).
Що стосується дублікатів — у кортеже можна зберігати однакові елементи кілька разів — allow duplicates. Знову-таки, дуже схоже на список.
Корисно. Можна думати про кортеж як про незмінний список, який замість квадратних дужок [] використовує круглі ().
10.2 Створення кортежа
Кортежі — це незмінні послідовності елементів, які можна створювати різними способами. Ось найпоширеніші з них:
Пряме оголошення:
Кортежі можна створити безпосередньо за допомогою круглих дужок () і ком для розділення елементів.
tuple1 = (1, 2, 3)
tuple2 = ("apple", "banana", "cherry", "apple", "cherry")
tuple3 = (1, "apple", True)
Без дужок:
Python дозволяє створювати кортежі без використання дужок, просто розділяючи елементи комами.
tuple1 = 1, 2, 3
tuple2 = "apple", "banana", "cherry", "apple", "cherry"
tuple3 = 1, "apple", True
Кортеж з одного елемента:
Для створення кортежу з одним елементом необхідно поставити кому після цього елемента.
tuple1 = (1,)
tuple2 = ("apple",)
tuple3 = (True,)
Використання tuple():
Функція tuple() перетворює ітерований об'єкт у кортеж. Це може бути список, рядок або будь-який інший ітерований об'єкт.
list_to_tuple = tuple([1, 2, 3])
10.3 Розпаковка елементів кортежу
При роботі з кортежами можна упакувати кілька елементів в один кортеж або розпакувати кортеж у кілька змінних, що спрощує код:
Базова розпаковка
Приклад розпаковки кортежу у змінні:
my_tuple = (1, 2, 3)
x, y, z = my_tuple
Тут змінні x, y і z отримують значення 1, 2 і 3 відповідно.
Розширена розпаковка
Python також підтримує розширену розпаковку, яка дозволяє витягувати частини кортежу у список, використовуючи символ *:
a, *b, c = (1, 2, 3, 4, 5) # a = 1, b = [2, 3, 4], c = 5
У цьому прикладі a і c отримують перше і останнє значення, а b стає списком з усіма іншими значеннями.
Застосування у функціях
Розпаковка кортежів часто використовується при передачі параметрів у функції. Це особливо зручно, коли функція приймає змінну кількість аргументів або коли аргументи попередньо упаковані у кортежі чи списки:
def func(a, b, c):
print(a, b, c)
values = (1, 2, 3)
func(*values)
Особливості використання
Розпаковка кортежів вимагає точного відповідності кількості елементів кортежу кількості змінних, яким вони присвоюються, інакше буде згенерована помилка. Проте використання * для збирання зайвих елементів дозволяє уникнути цієї помилки, роблячи код більш гнучким до змін у даних.
10.4 Список методів
Кортежі — це незмінні об'єкти, тому у них майже немає своїх методів. Всього два 😊
Функція count(x):
Повертає кількість разів, яке x зустрічається у кортеже. Це корисно для підрахунку кількості певних елементів.
t = (1, 2, 3, 2, 4, 2)
print(t.count(2)) # Виведе 3
Функція index(x):
Повертає індекс першого входження елемента x у кортеже. Якщо елемент не знайдено, виникає виключення ValueError.
t = (1, 2, 3, 2, 4, 2)
print(t.index(3)) # Виведе 2
Хоча це і всі методи класу tuple, це не означає, що з ним не можна нічого робити. Можна, тільки це буде трохи складніше.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
у кортежена в кортежі, чи на у кортежі