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

Перейти к: навигация, поиск

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

В математике

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

В математике кортеж обычно записывается перечислением элементов в круглых или угловых скобках.

В теории множеств кортеж обычно определяется индуктивно:

  • пустое множество — это кортеж (с нулевым количеством элементов);
  • для каждого кортежа , множество также является кортежем.

Элементы кортежа называются его компонентами, или координатами.

Кортеж длины нуль называется пустым.

Частными случаями кортежа является (по числу элементов) упорядоченная пара, тройка, четвёрка и т. д.

Многие математические объекты формально определяются как кортежи. Например, ориентированный граф определяется как кортеж (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 значений, по одному значению для каждого атрибута отношения.

Примечания

  1. std::tuple
  2. std::tuple
  3. The Boost Tuple Library
  4. MSDN: класс Tuple

См. также

Тип-произведение

Ссылки

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


Кортеж (информатика).

© 2021–2023 sud-mal.ru, Россия, Барнаул, ул. Денисова 68, +7 (3852) 74-95-52