Кортеж — упорядоченный набор фиксированной длины.

В математике Пусть даны множества , не обязательно различные.

Тогда корте́ж длины , упорядоченный набор длины , упорядоченный -набор или -ка — упорядоченная последовательность из элементов где для Кортеж обозначается перечислением координат в угловых или круглых скобках:

или

Элемент называется -й координатой (проекцией, компонентой) кортежа

Число называют длиной или размерностью кортежа.

Два кортежа равны, если равны их длины и соответствующие элементы: если

Пример кортежа — арифметический вектор.

Декартово произведение множеств — множество всех кортежей длины , координаты которых взяты из этих множеств:

Кортежи длины 2, 3, 4, 5, … также носят названия «упорядоченная пара», «упорядоченная тройка», «упорядоченная четвёрка», «упорядоченная пятёрка»

Определения в теории множеств В рамках теории множеств кортежи можно индуктивно поставить в соответствие множествам, например, следующим образом:

Определение других объектов через кортежи Многие математические объекты формально определяются как кортежи. Например, ориентированный граф определяется как пара где — это множество вершин, а — подмножество пар в соответствующих дугам графа. Точка в -мерном пространстве действительных чисел определяется как кортеж длины , составленный из элементов множества действительных чисел.

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

В программировании

В некоторых языках программирования, например, Python или ML, кортеж как тип данных встроен в язык. Пример использования кортежа в языке Python: a = (1, 3.14, 'cat') print(a) # Напечатать первый элемент кортежа

В языках программирования со статической типизацией кортеж отличается от списка тем, что элементы кортежа могут принадлежать разным типам и набор таких типов заранее определён типом кортежа, а значит, и размер кортежа также определён. С другой стороны, коллекции (списки, массивы) имеют ограничение по типу хранимых элементов, но не имеют ограничения на длину. Так, например, в языке Rust функция может вернуть несколько значений с помощью упаковки в кортеж:

fn div_with_remainder(a: i32, b: i32) -> (i32, i32, String) { let tmp = (a/b, a%b); (tmp.0, tmp.1, format!("{} + {}", tmp.0, tmp.1)) }

let (res, rem, repr) = div_with_remainder(5,2);

В функциональных языках некаррированные функции нескольких аргументов принимают параметры в виде одного аргумента, являющегося кортежем.

В языке C++ поддержка кортежей реализована как шаблон класса std::tuple (начиная с C++11) и в библиотеке Boost Tuple Library.

Кортеж является стандартным типом в платформе .NET начиная с версии 4.0.

В базах данных В реляционных базах данных кортеж — это элемент отношения. Для N-арного отношения кортеж представляет собой упорядоченный набор из N значений, по одному значению для каждого атрибута отношения, то есть запись (строку) таблицы, если использовать наиболее популярное представление (графическую/физическую интерпретацию) отношения как таблицы.

Примечания

Литература

Ссылки В глубь языка Python: 1.9. Кортежи

Категория:Теория множеств Категория:Реляционная модель данных Категория:Структуры данных Категория:Статьи с примерами кода Python