БЕСПЛАТНАЯ ПОДГОТОВКА К ЕГЭ ПО ПРОФИЛЬНОЙ МАТЕМАТИКЕ
Подготовься к ЕГЭ-2026 по профильной математике самостоятельно с помощью сервиса "1С:Репетитор"!
Понятная теория и эффективные тренажеры с объяснением! Вы успеете подготовиться к экзамену! Начните занятия прямо сейчас!
design_arrow

Кортежи в информатике

В информатике кортежем называют упорядоченную последовательность из нескольких элементов, объединённых в одну структуру. В языке Python кортеж обычно записывается через запятые: (12, 5, 9) или «код», 2026, True. Он удобен для хранения координат, параметров, дат, результатов функции и небольших записей, состав которых после создания не должен меняться.

Главная особенность кортежа – неизменяемость самой последовательности. Нельзя заменить t[1], удалить отдельную позицию или добавить новый элемент внутрь уже созданного объекта. При этом элементы доступны по индексам, могут повторяться и способны относиться к разным типам данных. Важно также помнить: одно значение становится кортежем не из-за скобок, а благодаря запятой – (7,).

Работа с кортежами строится вокруг нескольких действий: создать структуру, определить длину, выбрать элементы по индексам, выполнить срез, проверить принадлежность, распаковать значения или получить новый кортеж на основе исходного. Последовательный алгоритм помогает отличать допустимое чтение от запрещённого изменения.

Что представляет собой кортеж

Кортеж сохраняет порядок элементов. Структуры (8, 3, 8, 5) и (3, 8, 8, 5) различаются, хотя содержат одинаковые числа. Повторения разрешены: значение 8 занимает сразу две самостоятельные позиции, и каждая из них имеет собственный индекс.

При нулевой индексации первый элемент имеет индекс 0, второй – 1, последний – n − 1. В Python доступны и отрицательные индексы: −1 обозначает последний элемент, −2 – предпоследний. Длина len(t) показывает количество позиций, включая повторяющиеся значения.

В отличие от типичного числового массива, один кортеж может объединять данные разных видов: число, строку, логическое значение и даже другую коллекцию. Такая неоднородность позволяет представлять небольшую запись, например сведения о товаре: («тетрадь», 48, 129.5, True).

Таблица 1. Основные компоненты программного кортежа

Компонент

Обозначение

Пример

Назначение

Элемент

t[i]

t[2] = «май»

Хранит одно значение последовательности.

Индекс

i или −i

0, 1, −1

Указывает позицию элемента.

Длина

len(t)

len((4, 7)) = 2

Показывает число элементов.

Разделитель

запятая

(9,)

Создаёт одноэлементный кортеж.

Порядок

слева направо

(5, 1, 9)

Сохраняет последовательность данных.


Таблица помогает отделить элемент от индекса и длины. Особое значение имеет разделитель: запись (4) является обычным числом в скобках, а (4,) – одноэлементным кортежем. Следовательно, форму структуры определяет запятая, тогда как скобки главным образом улучшают читаемость.

Создание кортежа

Кортеж можно записать перечислением значений, создать пустым, получить из другой последовательности или сформировать выражением tuple(...). Запись t = (2, 6, 1) задаёт три элемента, () создаёт пустой кортеж, а tuple([4, 7]) преобразует список в неизменяемую последовательность.

Создание и преобразование кортежа

Способ создания выбирают по задаче. Готовые значения удобно перечислить через запятые. Данные из строки, диапазона или списка можно передать функции tuple. Если несколько выражений присваиваются одной переменной через запятые, происходит упаковка. Обратное присваивание переменным выполняет распаковку.

Таблица 2. Основные способы создания кортежей

Способ

Как записывается

Пример

Когда применяется

Перечисление

Значения через запятые.

(4, 7, −2)

Готовый небольшой набор.

Пустой кортеж

Пара скобок.

()

Исходная пустая структура.

Один элемент

Обязательная запятая.

(8,)

Сохранение одной позиции.

Преобразование

Функция tuple(...).

tuple(range(3))

Данные из другой коллекции.

Упаковка

Несколько выражений.

point = 3, 5

Компактное объединение значений.

Индексация и срезы

Индекс связывает команду с конкретной позицией. Для t = (11, 20, 35) выражения t[0], t[1] и t[2] возвращают 11, 20 и 35, а t[-1] – 35. Обращение t[3] недопустимо. Срез t[0:2] создаёт новый кортеж (11, 20), не изменяя исходную структуру.

Основные операции с кортежем

Чтение элемента, вычисление длины, перебор и создание среза не нарушают неизменяемость. Оператор + соединяет два кортежа и возвращает новый объект, а оператор * повторяет последовательность указанное число раз. Проверка in устанавливает, встречается ли значение среди элементов.

Методы count и index выполняют поиск: count сообщает число вхождений, index возвращает позицию первого совпадения. Попытка присвоить новое значение по индексу вызывает ошибку. Чтобы получить изменённый вариант, создают новый кортеж из срезов, преобразуют данные в список или полностью формируют другую последовательность.

Таблица 3. Операции и их влияние на кортеж

Операция

Что происходит

Пример

Особенность

Доступ

Читается элемент.

x = t[i]

Нужен допустимый индекс.

Срез

Создаётся новый кортеж.

t[1:4]

Исходник не изменяется.

Объединение

Соединяются последовательности.

a + b

Возвращается новый объект.

Повторение

Кортеж копируется несколько раз.

t * 3

Длина увеличивается кратно.

Поиск

Проверяется наличие или позиция.

in, count, index

index требует совпадения.

Алгоритм решения задачи с кортежем

  • Определить, какие значения нужно объединить и должен ли сохраняться их порядок.
  • Проверить, предполагается ли изменение состава данных после создания структуры.
  • Выбрать способ создания: перечисление, tuple(...), упаковка или преобразование коллекции.
  • Выписать допустимые индексы и решить, нужен ли отдельный элемент, срез или полный проход.
  • При распаковке сопоставить число переменных с количеством элементов либо использовать звёздочку.
  • Для изменения сформировать новый кортеж, не пытаясь присвоить значение существующей позиции.
  • Проверить решение на пустом, одноэлементном, вложенном кортежах и повторяющихся значениях. 

Информатика – схема основных свойств и операций с кортежем

Мини-шпаргалка по теме

  • Кортеж хранит элементы в определённом порядке и допускает повторяющиеся значения.
  • В Python кортеж создаёт запятая: (5,) – кортеж, а (5) – число.
  • При нулевой индексации первый индекс равен 0, последний положительный – len(t) − 1.
  • Отрицательный индекс −1 обозначает последний элемент, −2 – предпоследний.
  • Кортеж неизменяем: отдельную позицию нельзя заменить, добавить или удалить.
  • Срез, объединение и повторение создают новые кортежи, не исправляя исходный.
  • Распаковка связывает элементы с переменными; их количество должно соответствовать структуре.
  • Кортеж может быть ключом словаря только тогда, когда все его элементы хешируемы.

Типичные ошибки и способы их предупреждения

Ошибка 1. Одноэлементный кортеж записывают как (7). Такая конструкция остаётся целым числом, потому что скобки лишь группируют выражение. Нормативная запись – (7,). Полезно помнить: признаком кортежа служит запятая, а не внешняя рамка.

Ошибка 2. Пытаются выполнить t[1] = 10. Кортеж не поддерживает замену элемента по индексу. Если требуется новый вариант, можно соединить срезы t[:1] + (10,) + t[2:] либо сначала преобразовать структуру в список.

Ошибка 3. При распаковке используют неправильное число переменных. Команда a, b = (1, 2, 3) приводит к ошибке, поскольку значений больше, чем имён. Следует добавить переменную, применить звёздочку или выбрать подходящий срез.

Ошибка 4. Считают кортеж полностью неизменяемым на всех уровнях. Состав позиций действительно фиксирован, но помещённый внутрь список способен изменяться. Например, в (1, [2, 3]) можно дополнить внутренний список, не заменяя сам элемент кортежа.

Ошибка 5. Любой кортеж используют как ключ словаря. Это возможно только при хешируемости всех вложенных элементов. Кортеж (1, 2) подходит, а (1, [2, 3]) – нет, потому что список является изменяемым и нехешируемым объектом.

Практические рекомендации

Перед написанием программы полезно выписать небольшой кортеж и подписать над элементами положительные, а под ними отрицательные индексы. Затем вручную проверить несколько обращений и срезов. Такая схема помогает избежать выхода за границы и путаницы между последней позицией и длиной.

Второй приём – различать создание нового объекта и изменение вложенного содержимого. Выражение t + (x,) возвращает новый кортеж, а не расширяет прежний. Если внутри хранится список, его методы могут менять сам список, хотя ссылка на него остаётся на той же позиции кортежа.

Как различать кортеж и близкие структуры

Кортеж и список сохраняют порядок, поддерживают индексы, срезы и повторяющиеся значения. Главное различие состоит в изменяемости: список допускает замену, добавление и удаление элементов, а кортеж фиксирует состав позиций после создания. Поэтому кортеж подходит для устойчивых наборов данных.

Множество ориентировано на уникальность и проверку принадлежности, поэтому не предоставляет обычного позиционного доступа. Словарь хранит пары «ключ – значение». Кортеж может выступать ключом словаря, если состоит только из хешируемых элементов, например координата (4, 7).

Таблица 4. Сравнение кортежа с другими структурами данных

Структура

Порядок и доступ

Изменяемость

Подходящие задачи

Кортеж

Порядок есть, индекс есть.

Неизменяемый.

Координаты, параметры, результаты.

Список

Порядок есть, индекс есть.

Изменяемый.

Наборы с добавлением и удалением.

Множество

Обычного индекса нет.

Изменяемое.

Уникальность и принадлежность.

Словарь

Доступ по ключу.

Изменяемый.

Связь ключей со значениями.

Строка

Порядок и индекс есть.

Неизменяемая.

Последовательности символов.

Образцы краткого алгоритмического разбора

Образец 1. Выражение point = 6, 2 упаковывает два числа в кортеж (6, 2). Команда x, y = point выполняет распаковку: переменная x получает 6, а y – 2. Исходная последовательность при этом не изменяется.

Образец 2. Для t = (4, 0, −3, −8) требуется получить средние элементы. Срез t[1:3] выбирает позиции 1 и 2, но не включает границу 3. Результатом становится новый кортеж (0, −3).

Образцы краткого алгоритмического разбора

Образец 3. Кортеж (2, 5) объединяют с (7, 9). Оператор + создаёт последовательность (2, 5, 7, 9); исходные объекты сохраняются. Повторение (1, 0) * 3 формирует (1, 0, 1, 0, 1, 0).

Образец 4. Кортеж key = («A», 12) состоит из хешируемых элементов и может использоваться как ключ словаря. Вариант («A», [12]) не подходит: вложенный список изменяем, поэтому весь кортеж нельзя надёжно хешировать.

Связь темы с решением задач по информатике

Кортежи применяются для координат, цветовых компонентов, дат, размеров, параметров конфигурации и результатов вычислений. Функция может вернуть несколько значений в виде кортежа, после чего программа распакует их в отдельные переменные. Такая форма делает структуру результата явной.

Навык особенно важен при выборе подходящей коллекции. Неизменяемость защищает фиксированный набор позиций от случайной замены, а хешируемые кортежи позволяют обозначать точки, клетки и составные идентификаторы в словарях и множествах.

Сорок пять практических упражнений

Упражнения расположены от создания и индексации к срезам, распаковке, вложенным структурам и анализу допустимых операций. После каждого задания приведено решение, поэтому материал подходит для самостоятельной тренировки и проверки.

Упражнение 1. Определите длину кортежа (4, 7, 2).
Решение. Длина равна 3, потому что последовательность содержит три элемента.

Упражнение 2. Назовите элемент с индексом 0 в кортеже (8, 5, 1).
Решение. Элемент t[0] равен 8; нулевой индекс обозначает первую позицию.

Упражнение 3. Найдите t[-1] для кортежа (6, 9, 2, 4).
Решение. Индекс −1 обращается к последней позиции, поэтому ответ равен 4.

Упражнение 4. Выпишите положительные индексы кортежа длины 5.
Решение. Допустимы индексы 0, 1, 2, 3 и 4.

Упражнение 5. Запишите пустой кортеж.
Решение. Пустой кортеж записывается как ().

Упражнение 6. Создайте одноэлементный кортеж с числом 9.
Решение. Верная запись: (9,). Запятая отличает кортеж от числа в скобках.

Упражнение 7. Преобразуйте список [3, 8, 6] в кортеж.
Решение. Выражение tuple([3, 8, 6]) создаёт кортеж (3, 8, 6).

Упражнение 8. Какой объект создаёт запись point = 2, 5?
Решение. Происходит упаковка, и point получает кортеж (2, 5).

Упражнение 9. Распакуйте кортеж (7, 4) в переменные x и y.
Решение. Подходит команда x, y = (7, 4); x равно 7, y равно 4.

Упражнение 10. Выполните распаковку a, *b = (1, 2, 3, 4).
Решение. a получает 1, а b становится списком [2, 3, 4].

Упражнение 11. Найдите срез (5, 8, 2, 9)[1:3].
Решение. Выбираются индексы 1 и 2; результат равен (8, 2).

Упражнение 12. Объедините кортежи (1, 4) и (7, 9).
Решение. Оператор + создаёт (1, 4, 7, 9).

Упражнение 13. Повторите кортеж («а», «б») два раза.
Решение. («а», «б») * 2 даёт («а», «б», «а», «б»).

Упражнение 14. Проверьте, входит ли число 6 в (2, 6, 8).
Решение. Выражение 6 in (2, 6, 8) возвращает True.

Упражнение 15. Сколько раз число 3 встречается в (3, 1, 3, 3)?
Решение. Метод count возвращает 3.

Упражнение 16. Найдите индекс первого числа 5 в (9, 5, 2, 5).
Решение. Метод index возвращает 1.

Упражнение 17. Найдите сумму элементов кортежа (4, −2, 7, 1).
Решение. 4 − 2 + 7 + 1 = 10.

Упражнение 18. Определите минимум и максимум в (9, 3, −1, 4).
Решение. Минимум равен −1, максимум равен 9.

Упражнение 19. Найдите элемент t[1][0] для t = ((1, 2), (7, 8)).
Решение. t[1] равно (7, 8), а его элемент с индексом 0 равен 7.

Упражнение 20. Почему команда t[0] = 9 недопустима?
Решение. Кортеж неизменяем и не поддерживает замену отдельной позиции.

Упражнение 21. Что произойдёт при попытке удалить t[1] из кортежа?
Решение. Возникнет ошибка: отдельные элементы кортежа удалить нельзя.

Упражнение 22. Замените второй элемент (3, 8, 6) числом 10 без изменения исходного объекта.
Решение. Можно создать (3, 8, 6)[:1] + (10,) + (3, 8, 6)[2:], получив (3, 10, 6).

Упражнение 23. Чем кортеж (1, 2) отличается от списка [1, 2]?
Решение. Обе структуры упорядочены, но список изменяем, а состав кортежа фиксирован.

Упражнение 24. Можно ли дополнить список внутри кортежа (1, [2, 3])?
Решение. Да. Внутренний список изменяем, хотя заменить его как элемент кортежа нельзя.

Упражнение 25. Когда кортеж разрешено использовать как ключ словаря?
Решение. Когда каждый его элемент хешируем и не содержит изменяемых нехешируемых объектов.

Упражнение 26. Подходит ли кортеж (4, 7) для обозначения клетки словаря?
Решение. Да. Оба числа хешируемы, поэтому координата может быть ключом.

Упражнение 27. Функция вернула (12, 3). Как получить два результата?
Решение. Выполнить распаковку: total, count = (12, 3).

Упражнение 28. Поменяйте значения a = 4 и b = 9 без временной переменной.
Решение. Команда a, b = b, a использует упаковку и распаковку; получится a = 9, b = 4.

Упражнение 29. Запишите координату точки с x = −2 и y = 5.
Решение. Подходящий кортеж: (−2, 5).

Упражнение 30. Сравните кортежи (1, 8) и (2, 0) лексикографически.
Решение. (1, 8) меньше, потому что первые элементы 1 и 2 определяют результат.

Упражнение 31. Отсортируйте список кортежей [(2, 3), (1, 9), (2, 1)].
Решение. По стандартному порядку получится [(1, 9), (2, 1), (2, 3)].

Упражнение 32. Преобразуйте строку «код» в кортеж символов.
Решение. tuple(«код») создаёт («к», «о», «д»).

Упражнение 33. Создайте кортеж чисел 0, 1, 2 и 3 из диапазона.
Решение. tuple(range(4)) возвращает (0, 1, 2, 3).

Упражнение 34. Представьте две строки таблицы кортежем кортежей.
Решение. Например: ((1, 2), (3, 4)); внешний кортеж содержит две внутренние строки.

Упражнение 35. Распакуйте пару (индекс, значение) = (2, «май»).
Решение. Команда i, value = (2, «май») даёт i = 2 и value = «май».

Упражнение 36. Что получает функция def f(*args), если вызвать f(1, 2, 3)?
Решение. Параметр args внутри функции является кортежем (1, 2, 3).

Упражнение 37. Почему (5) не является кортежем?
Решение. Скобки только группируют число; для кортежа нужна запись (5,).

Упражнение 38. Назовите преимущество неизменяемого набора координат.
Решение. Его позиции нельзя случайно заменить, поэтому структура сохраняет заданный смысл.

Упражнение 39. Что вернёт срез (1, 2, 3)[1:10]?
Решение. Срез безопасно остановится у конца и вернёт (2, 3).

Упражнение 40. Как избежать ошибки index при отсутствии значения?
Решение. Сначала проверить принадлежность оператором in, а затем вызывать index.

Упражнение 41. Что вернёт (1, 2, 1).count(7)?
Решение. Метод вернёт 0, потому что число 7 не встречается.

Упражнение 42. Объедините строки кортежа («красный», «синий») через запятую.
Решение. Выражение ", ".join((«красный», «синий»)) создаёт строку «красный, синий».

Упражнение 43. Преобразуйте ((1, 2), (3, 4)) в плоский кортеж.
Решение. Объединение внутренних частей даёт (1, 2) + (3, 4) = (1, 2, 3, 4).

Упражнение 44. Оставьте только положительные числа из (−2, 0, 5, 3).
Решение. Создание нового кортежа по условию даёт (5, 3); исходный остаётся прежним.

Упражнение 45. Выполните полный анализ кортежа («A», 4, 4, True).
Решение. Длина равна 4, индексы 0–3, последний элемент True, число 4 встречается дважды; кортеж упорядочен и неизменяем, но содержит значения разных типов.

Заключение

Кортеж в информатике представляет собой упорядоченную структуру, в которой каждому элементу соответствует индекс, а состав позиций после создания не изменяется. Он поддерживает чтение, перебор, срезы, объединение, повторение, поиск и распаковку. В Python решающим признаком одноэлементного кортежа является запятая.

Надёжная работа с кортежами требует проверки границ, правильного числа переменных при распаковке и понимания вложенной изменяемости. Срезы и объединение создают новые объекты, а использование кортежа как ключа словаря возможно только при хешируемости всех элементов.

Главный способ самопроверки – выписать элементы, подписать положительные и отрицательные индексы и определить, создаёт ли операция новый кортеж или пытается изменить существующий. Такой подход помогает различать запятую и скобки, избегать ошибок распаковки и осознанно выбирать между кортежем и изменяемыми коллекциями.