Кортеж: что это такое простыми словами и где встречается

«Кортеж» — это слово-хамелеон: в новостях это процессия машин, в Python тип данных, в базе данных строка таблицы, в математике упорядоченный набор. Разобрали все четыре значения простыми словами: чем кортеж отличается от списка, можно ли его изменить и зачем он нужен. После статьи вы перестанете путать значения и поймёте, какое имели в виду именно вы.
Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер Telegram-каналов, эксперт в выборе онлайн-курсов
Все 430 статей автора
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 1093 экспертных мнения

Одно слово, а смыслов сразу четыре. «Кортеж» можно встретить в новостях про свадьбу, в учебнике по математике, в курсе по Python и в документации к базе данных. И везде это будет немного разное.

Хорошая новость: за всеми четырьмя значениями стоит одна простая идея. Кортеж — это упорядоченный набор элементов фиксированной длины. Если вы поняли эту фразу, считайте, что половину статьи уже прочитали.

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

Если вы только начинаете разбираться с кодом, для начала пригодится общая картина по языку: мы собрали её в обзоре «Язык Python: стоит ли учить». А кто хочет сразу понять, куда это ведёт по работе, загляните в разбор профессии «Python-разработчик: кто это и сколько зарабатывает».

Статья пригодится не только будущим программистам. С кортежами в том или ином виде сталкиваются аналитики, специалисты по данным, тестировщики и все, кто работает с таблицами. Если хочется освоить это системно, у нас есть большая подборка курсов по Python от коротких интенсивов до годовых программ.

Курсы по PythonКурсыСравнение 474 курсов по PythonЦены, школы, длительность, рассрочка

Кортеж простыми словами — что общего у всех значений

Представьте координаты точки на карте: 55.75 — широта, 37.62 — долгота. Это Москва. Поменяйте числа местами, и вы окажетесь где-то совсем не там. Вот это и есть кортеж: набор значений, где важен и состав, и порядок.

У кортежа есть три свойства, которые держатся вместе во всех областях, где встречается это слово.

  1. Упорядоченность. У каждого элемента своё место и свой номер. Первый, второй, третий. Переставить элементы — значит получить уже другой кортеж. Пара «широта, долгота» и пара «долгота, широта» — это две разные точки.
  2. Фиксированная длина. Сколько элементов в кортеже задумано, столько и будет. Координаты на плоскости — это всегда два числа, в пространстве — три. Не одно и не пять.
  3. Элементы могут повторяться. В кортеже спокойно живут одинаковые значения. Например, время (12, 12, 12) — полдень, полдень и снова 12 часов. Это нормальный кортеж из трёх элементов.

Запомните одну фразу. Кортеж — это упорядоченный набор фиксированной длины. Всё остальное в статье — это разные костюмы, в которые одна и та же идея переодевается в зависимости от области.

Само слово пришло из французского, где cortège означает «свита», «торжественное шествие». Отсюда и тянется бытовое значение, с него и начнём.

Кортеж в обычной речи — это процессия машин

Рой ведёт свадебный кортеж машин

Если вы искали «кортеж» после новостей, а не по работе, речь скорее всего про автомобили. В повседневном русском кортеж — это вереница машин, которая едет вместе по торжественному или официальному поводу.

Самые частые сочетания, которые встречаются в речи:

  • Свадебный кортеж — украшенные машины, которые везут молодожёнов и гостей.
  • Президентский кортеж — колонна автомобилей охраны и сопровождения первого лица.
  • Траурный кортеж — процессия машин на похоронах.

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

С обычной речью разобрались за минуту. Дальше начинается то, ради чего слово «кортеж» чаще всего и попадает в поиск.

Кортеж в программировании — главный смысл для IT

В программировании кортеж (по-английски tuple, читается «тапл») — это готовый тип данных, контейнер, который хранит несколько значений вместе и в определённом порядке. Ярче всего он проявился в языке Python, поэтому примеры будем показывать на нём, но сама идея есть и в других языках.

Главная фишка кортежа в коде: после создания его нельзя изменить. Такое свойство называют неизменяемостью (по-английски immutable). Положили значения один раз, и дальше их можно только читать. Это как фотография: запечатлели момент, и переснять задним числом уже не выйдет.

Чем кортеж отличается от списка и массива

У новичков это первый вопрос, и он правильный. В Python рядом с кортежем живёт список (по-английски list) — очень похожий контейнер, который тоже хранит элементы по порядку. Разница в одном слове: список менять можно, кортеж — нельзя.

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

А что насчёт массива? Массив (по-английски array) — это термин из других языков и из библиотек для вычислений, где хранят много чисел одного типа. В чистом Python массивов в привычном смысле нет, их роль играют как раз списки. Так что для новичка достаточно держать в голове пару «список против кортежа»: изменяемый против неизменяемого.

Простое правило выбора. Данные будут меняться по ходу работы — берите список. Набор задан раз и навсегда (координаты, дата рождения, размеры экрана) — берите кортеж.

Как создать кортеж (tuple) в Python

Рой пишет кортеж в Python на ноутбуке

Кортеж записывают в круглых скобках, элементы разделяют запятыми. Вот несколько примеров:

  • point = (55.75, 37.62) — кортеж из двух чисел, координаты.
  • person = («Анна», 28, «Москва») — имя, возраст и город в одном наборе.
  • empty = () — пустой кортеж, без элементов.

Тут прячется единственная ловушка, на которой спотыкаются все новички. Если в кортеже один элемент, после него всё равно нужна запятая:

  • one = (5,) — это кортеж из одного числа.
  • not_tuple = (5) — а это просто число 5 в скобках, никакой не кортеж.

Запятая — единственное, что отличает одно от другого. Без неё Python решит, что скобки тут для порядка вычислений, как в обычной математике.

Курсы по Python-разработчикКурсыСравнение 70 курсов для python-разработчиковЦены, школы, длительность, рассрочка

Что с кортежем можно и нельзя делать

Читать кортеж можно как угодно. К любому элементу обращаются по его номеру, который называют индексом. Нумерация начинается с нуля: person[0] вернёт «Анна», person[1] — возраст 28. А вот изменить, добавить или удалить элемент уже нельзя, программа выдаст ошибку.

Здесь есть один нюанс, о котором забывают даже не-новички. Сам кортеж неизменяемый, но если внутри него лежит список, то этот вложенный список менять можно. Кортеж хранит «адрес» списка, а что у списка внутри, его уже не касается. Для новичка вывод простой: кортеж из чисел и строк защищён полностью, а если внутри прячется список, будьте внимательнее.

Зачем нужны кортежи и где они удобны

Резонный вопрос: зачем нужен контейнер, который нельзя менять, если есть гибкий список? У кортежа три понятные роли.

  1. Защита от случайных правок. Если данные не должны меняться, кортеж сам себя бережёт. Никто в команде случайно не перепишет координаты или настройки, потому что язык просто не даст.
  2. Функция возвращает несколько значений сразу. Часто программа считает что-то и должна отдать обратно сразу несколько значений: пару или тройку чисел. Например, функция нашла товар и вернула его цену и количество вместе: (1990, 7). Это типичная работа для кортежа.
  3. Распаковка. Кортеж можно красиво разобрать на отдельные переменные одной строкой: name, age, city = person. После этого name хранит «Анна», age — 28, city — «Москва». Удобно и читается легко.

Плюс к этому кортеж работает чуть быстрее списка и занимает меньше памяти. Для маленьких программ разница незаметна, но когда данных миллионы, она набегает. И ещё одна важная мелочь: кортеж можно использовать как ключ в словаре, а список — нельзя. Если эти слова пока звучат непонятно, ничего страшного, до них вы дойдёте чуть позже в любом курсе. Кстати, с похожей логики начинается и базовый цикл while в Python — это следующая тема после структур данных.

Именованные кортежи (namedtuple) простыми словами

У обычного кортежа есть неудобство: чтобы достать элемент, надо помнить его номер. Что значит person[1]? Возраст? Год? Через месяц вы сами не вспомните.

Эту проблему решает именованный кортеж (по-английски namedtuple) — расширение из стандартной библиотеки Python. Идея в том, чтобы дать каждому элементу имя. Тогда вместо загадочного person[1] вы пишете понятное person.age, и сразу ясно, что это возраст.

Именованный кортеж остаётся таким же неизменяемым и таким же лёгким, как обычный, но код с ним читается куда понятнее. Новичку про namedtuple достаточно знать, что такая штука есть и зачем она: когда у набора значений появляются осмысленные имена, программа становится понятнее без единого комментария.

Кортеж в базах данных — это строка таблицы

Строка-кортеж выделена в таблице базы данных

Третье значение встретит каждый, кто полезет в базы данных. Здесь кортеж — это одна строка таблицы. Целая запись об одном объекте.

Представьте таблицу клиентов в интернет-магазине. У неё есть колонки: имя, email, телефон, город. Одна строка с данными про конкретного человека — Анна, anna@mail.ru, +7…, Москва — это и есть кортеж. Набор значений фиксированной длины, по одному на каждую колонку.

В теории баз данных за этими словами стоят красивые термины. Вся таблица называется отношением (по-английски relation), колонка — атрибутом, а строка — тем самым кортежем. Отсюда и название «реляционные базы данных»: они построены из таблиц-отношений, а кирпичики этих таблиц — кортежи-строки.

Курсы по Базы данныхКурсыСравнение 67 курсов по базам данныхЦены, школы, длительность, рассрочка

Мостик между двумя мирами. Кортеж в программировании и кортеж в базе данных — родственники. И там, и там это упорядоченный набор фиксированной длины. Просто в коде он живёт в памяти, а в базе данных лежит строкой в таблице.

С базами данных работают аналитики, инженеры и разработчики. Если тема цепляет, посмотрите, кто этим занимается на практике: разработчик баз данных и архитектор базы данных.

Кортеж в математике — упорядоченная n-ка

Четвёртое значение самое старое, из него выросли все остальные. В математике кортеж называют ещё n-кой (читается «эн-кой») — это упорядоченный набор из n элементов, где n может быть любым числом: два, три, десять.

Мы это уже видели раньше в этой статье. Координаты точки на плоскости (3, 5) — это кортеж длины два. Точка в пространстве (3, 5, 7) — кортеж длины три. Главное здесь, как и везде, порядок: точка (3, 5) и точка (5, 3) лежат в разных местах.

От обычного набора (по-научному множества) кортеж отличается двумя вещами: в нём важен порядок и элементы могут повторяться. В множестве {3, 5} и {5, 3} — одно и то же, а в кортеже (3, 5) и (5, 3) — нет. Эту разницу новичку достаточно понять на уровне идеи, формулы заучивать не нужно.

Сравнительная таблица — кортеж в четырёх областях

Чтобы все четыре значения улеглись в голове, соберём их в одну таблицу. Идея у кортежа везде одна, меняется только костюм.

Область Что такое кортеж Пример Ключевое свойство
Обычная речь Процессия машин Свадебный кортеж Едут в одном порядке
Программирование Неизменяемый контейнер для значений (55.75, 37.62) Нельзя изменить после создания
Базы данных Строка таблицы, одна запись Анна, anna@mail.ru, Москва По значению на каждую колонку
Математика Упорядоченная n-ка элементов Координаты (3, 5) Важен порядок, возможны повторы

Посмотрите на колонку «ключевое свойство». Во всех строках по сути написано одно: набор задан, порядок важен, длина фиксирована. Это и есть кортеж.

Частые ошибки и заблуждения про кортежи

Рой растерян из-за пропущенной запятой в кортеже

Когда новичок впервые встречает кортежи в коде, он почти всегда наступает на одни и те же грабли. Разберём их заранее.

  • Забыть запятую в кортеже из одного элемента. Самая популярная ошибка. (5) — это число, (5,) — кортеж. Если что-то ведёт себя странно, проверьте запятую первым делом.
  • Думать, что кортеж совсем нельзя трогать. Сам кортеж менять нельзя, это правда. Но если внутри лежит список, его содержимое поменять получится. Полная защита работает только для простых значений вроде чисел и строк.
  • Путать кортеж со списком из-за похожего вида. Списки пишут в квадратных скобках [ ], кортежи — в круглых ( ). Скобки — это первый признак, по которому их различают с одного взгляда.
  • Считать, что кортеж и массив — одно и то же. В разговоре их иногда мешают, но это разные вещи. Кортеж неизменяемый и хранит элементы любого типа вперемешку. Массив обычно изменяемый и хранит данные одного типа.

Где научиться работать с данными и кодом

Кортежи, списки, словари — это базовый алфавит любого программиста и аналитика. По отдельности каждую тему можно нагуглить, но цельная картина и практика быстрее складываются на нормальном курсе, где есть проверка заданий и обратная связь.

Мы собрали и сравнили программы по Python — от бесплатных вводных интенсивов до больших курсов с трудоустройством. Внутри видно цену, длительность, формат и отзывы, чтобы выбрать под свой уровень и бюджет.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Профессия «Python-разработчик»
Перейти на сайт курса
SkillboxSkillbox157 335 ₽5987 ₽/мес.10 месяцевОбзор курса
Fullstack-разработчик на Python
Перейти на сайт курса
НетологияНетология175 800 ₽7125 ₽/мес.21 месяцОбзор курса
Профессия «Python-разработчик с нуля до трудоустройства»
Перейти на сайт курса
НетологияНетология87 500 ₽5500 ₽/мес.6 месяцевОбзор курса
Автоматизированное тестирование на Python
Перейти на сайт курса
SkillboxSkillbox118 666 ₽4108 ₽/мес.9 месяцевОбзор курса
Программирование на Python ПРО
Перейти на сайт курса
SkillboxSkillbox119 600 ₽250 000 ₽/мес.17 месяцевОбзор курса
ДО Профессия Python-разработчик
Перейти на сайт курса
GeekBrainsGeekBrains149 001 ₽3167 ₽/мес.10 месяцевОбзор курса
Профессия Python-разработчик
Перейти на сайт курса
SkillFactorySkillFactory140 040 ₽3890 ₽/мес.10 месяцевОбзор курса
Python-разработчик + ИИ
Перейти на сайт курса
Академия СинергияСинергия77 900 ₽3246 ₽/мес.6 месяцевОбзор курса
Python-фреймворк Django
Перейти на сайт курса
SkillboxSkillbox58 352 ₽5128 ₽/мес.3 месяцаОбзор курса
Разработчик на Python
Перейти на сайт курса
НетологияНетология198 000 ₽5500 ₽/мес.6 месяцевОбзор курса

Больше программ — в полном каталоге курсов по Python

Если пока не определились с направлением, начните с обзора «Стоит ли учить Python» — там разобрали, кому язык подходит и что на нём делают. А кто целится в работу с базами данных, тому пригодится разбор профессии архитектора баз данных.

Часто задаваемые вопросы

Что такое кортеж простыми словами?

Кортеж — это упорядоченный набор элементов фиксированной длины. Важен и состав, и порядок: например, координаты точки (55.75, 37.62) или строка в таблице с данными клиента. Если переставить элементы местами, получится уже другой кортеж.

Чем кортеж отличается от списка в Python?

Главное отличие в одном слове: список можно менять после создания, а кортеж — нельзя. В список вы свободно добавляете и удаляете элементы по ходу программы, а кортеж остаётся таким, каким его создали. Ещё списки пишут в квадратных скобках [ ], а кортежи — в круглых ( ).

Можно ли изменить кортеж?

Сам кортеж изменить нельзя: добавить, удалить или заменить элемент не получится, программа выдаст ошибку. Есть один нюанс: если внутри кортежа лежит список, то содержимое этого вложенного списка поменять можно. Кортеж из чисел и строк защищён полностью.

Зачем нужны кортежи, если есть списки?

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

Что такое кортеж в базе данных?

В реляционных базах данных кортеж — это одна строка таблицы, целая запись об одном объекте. Например, в таблице клиентов кортеж — это строка с именем, email, телефоном и городом конкретного человека. По одному значению на каждую колонку.

Кортеж — это про машины или про программирование?

И то, и другое. В обычной речи кортеж — это процессия машин: свадебный, президентский, траурный. В программировании, базах данных и математике это упорядоченный набор значений. Слово одно, а смысл зависит от контекста. Общий корень — упорядоченность.

Как обратиться к элементу кортежа?

К элементу обращаются по его номеру, который называют индексом. Нумерация начинается с нуля: person[0] вернёт первый элемент, person[1] — второй. Читать элементы можно сколько угодно, а вот изменить их нельзя.

Что быстрее — кортеж или список?

Кортеж. Он создаётся быстрее и занимает примерно на 20–40% меньше памяти, чем список с теми же данными. На маленьких программах разница незаметна, но когда элементов миллионы, она набегает. Поэтому для неизменных наборов данных кортеж удобнее.

Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!