Кортежі (Tuple)

Модуль 1: Python Core
Рівень 5 , Лекція 9
Відкрита

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, це не означає, що з ним не можна нічого робити. Можна, тільки це буде трохи складніше.

Коментарі (5)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Semen Рівень 21
18 червня 2025
Замініть у кортеже на в кортежі, чи на у кортежі
Pavlo Kushnir Рівень 2
29 травня 2025
Що не так? taple_A = ("Alice", 30, "NY") a, b, c = taple_A print(f"name: {a}") print(f"age: {b}") print(f"city: {c}")
Pavlo Kushnir Рівень 2
29 травня 2025
А це чомусь у розвязані є правильним: person = ("Alice", 30, "NY") # Розпакування кортежу в окремі змінні name, age, city = person # Вивід змінних print(f"Ім'я: {name}") print(f"Вік: {age}") print(f"Місто: {city}") В чому різниця. Я в своему варінті все перобив окрім назви змінних. Вказав прості літери.
Semen Рівень 21
18 червня 2025
А, що, тебе, не влаштовує? Виведе: name: Alice age: 30 city: NY
Максим Рівень 9
18 березня 2025
Не совсем понятно практическое применение кортежей