Кортежи (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, это не означает, что с ним нельзя ничего делать. Можно, только это будет немного сложнее.

2
Задача
Модуль 1: Python Core, 5 уровень, 9 лекция
Недоступна
Просто и сложно одновременно
Просто и сложно одновременно
2
Задача
Модуль 1: Python Core, 5 уровень, 9 лекция
Недоступна
Распаковка
Распаковка
Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3399726 Уровень 12
27 октября 2025
В первой задаче, созданный кортеж умножил на требуемое количество элементов в данном кортеже. Как вариант)
_den Уровень 52
18 февраля 2025
Пример распаковки кортежа в переменные:

my_tuple = (1, 2, 3)
x, y, z = my_tuple
Со списком тоже работает:

my_list = [1, 2, 3]
x, y, z = my_list
Anonymous #2923722 Уровень 21
24 января 2025
import random def create_tuple(length = 0): if length <= 0: return tuple() return tuple(random.randint(1,length+100) for i in range(length)) t0 = create_tuple() print(t0) t1 = create_tuple(1) print(t1) t5 = create_tuple(5) print(t5) t100 = create_tuple(100) print(t100) t1000 = create_tuple(1000) print(t1000)
Jdhd Djdhdj Уровень 26
5 августа 2025
спец)
Peter Уровень 12
1 сентября 2025
Чёто перемудрено...

from random import randrange

def cr_tuple(num):
    tup = tuple((randrange(1, 100)) for _ in range(num))
    return tup
    
print(cr_tuple(0))
print(cr_tuple(1))
print(cr_tuple(5))
print(cr_tuple(100))
print(cr_tuple(1000))
Андрей Уровень 48
18 сентября 2024
Программа должна использовать конкретные примеры значений для каждого элемента кортежа (например, "Alice", 30, "New York"). Что за бред?????
Денис Уровень 33
16 декабря 2024
возможно здесь идёт референс к типам данных. Я ради смеху проверил на таком примере:

person = ("羽川", 15, "東京")
Засчитало
Sheo Gorath Уровень 15
12 января 2025
Именно что бред) Я ввела другой возраст и ответ у меня не приняли)
Dmitry Ryabov Уровень 23
25 января 2025
у меня тоже с моими данными программа не засчиталась, бред какой-то
Дмитрий Уровень 1
10 февраля 2025

tuple_player = ('Dmitriy', 24, 'Moscow')
a, b, c = tuple_player

print(f'Имя: {a}, возраст: {b}, город: {c}.')
Всё приняло, хз, может пофиксили Фиксики