Кортеж — упорядоченный набор фиксированной длины.
В математике корте́ж или -ка (упорядоченная -ка) — упорядоченный конечный набор длины (где ), каждый из элементов которого принадлежит некоторому множеству , . Элементы кортежа могут повторяться в нём любое число раз (этим, в частности, он отличается от упорядоченного множества, куда каждый элемент может входить только в одном экземпляре).
В математике кортеж обычно записывается перечислением элементов в круглых или угловых скобках.
В теории множеств кортеж обычно определяется индуктивно:
Элементы кортежа называются его компонентами, или координатами.
Кортеж длины нуль называется пустым.
Частными случаями кортежа является (по числу элементов) упорядоченная пара, тройка, четвёрка и т. д.
Многие математические объекты формально определяются как кортежи. Например, ориентированный граф определяется как кортеж (V,E), где V — это набор вершин, а E — подмножество V × V, обозначающее рёбра. Точка в n-мерном пространстве действительных чисел определяется как кортеж длины n, составленный из элементов множества действительных чисел.
В некоторых языках программирования, например, Python или ML, кортеж — особый тип данных. В языке Python кортеж (англ. tuple) отличается от списка тем, что элементы кортежа нельзя изменять.
a = (1, 2, 3, 2) print a[1] a[1] = 5 #Ошибка
Эта программа на Python 2.7, использующая кортеж a
, выведет ошибку в 3-й строке: TypeError: 'tuple' object does not support item assignment
.
В языках программирования со статической типизацией кортеж отличается от списка тем, что элементы кортежа могут принадлежать разным типам и набор таких типов заранее определён типом кортежа, а значит и размер кортежа также определён. С другой стороны, коллекции (списки, массивы) имеют ограничение по типу хранимых элементов, но не имеют ограничения на длину.
В функциональных языках некаррированные функции нескольких аргументов принимают параметры в виде одного аргумента, являющегося кортежем.
В языке C++ поддержка кортежей реализована как шаблон класса std::tuple[1] (начиная с C++11[2]) и в библиотеке Boost Tuple Library[3].
Кортеж является стандартным типом в платформе .NET начиная с версии 4.0[4].
В реляционных базах данных кортеж — это элемент отношения. Для N-арного отношения кортеж представляет собой упорядоченный набор из N значений, по одному значению для каждого атрибута отношения.
Это заготовка статьи по информатике. Вы можете помочь проекту, дополнив её. |
Это заготовка статьи по математике. Вы можете помочь проекту, дополнив её. |
Типы данных | |
---|---|
Неинтерпретируемые | |
Числовые | |
Текстовые | |
Ссылочные |
Адрес • Ссылка • Ссылка в С++ • Указатель |
Композитные |
Алгебраический тип данных (обобщённый) • Массив • Ассоциативный массив • Класс • Список • Кортеж • Объект • Структура • Множество • Объединение (меченое) |
Другие |
Логический • Низший • Высший • Перечисляемый • Коллекция • Исключение • Функциональный • Род (Метакласс) • Монада • Семафор • Поток • Void |
Связанные темы |
Кортеж (информатика).