Сообщить об ошибке.

Кортеж tuple в Python

Кортежи - это неизменяемые последовательности, обычно используемые для хранения коллекций разнородных данных. Например двойной кортеж, создаваемый встроенной функцией enumerate(). Кортежи также используются в тех случаях, когда требуется неизменяемая последовательность однородных данных.

Для кортежей доступны все общие операции с последовательностями.

В Python кортежи представлены классом tuple().

Кортежи могут быть созданы несколькими способами:

  1. Используя пару скобок для обозначения пустого кортежа: ().
  2. Использование запятой для одиночного кортежа: a, или (a,).
  3. Разделение элементов запятыми: a, b, c или (a, b, c):
    Обратите внимание, что запятая создает кортеж, а не скобки. Скобки необязательны, за исключением случая пустого кортежа, или когда они необходимы, чтобы избежать синтаксической двусмысленности.
    Например:
    • f(a, b, c) - вызов функции с тремя аргументами,
    • f((a, b, c)) - вызов функции с кортежем в качестве единственного аргумента.
  4. Использование встроенного класса tuple():
    • tuple() - создаст пустой кортеж,
    • tuple(iterable) - преобразует контейнер, поддерживающим итерацию в кортеж.

Конструктор класса tuple() создает кортеж, элементы которого совпадают и находятся в том же порядке, что и элементы итератора iterable. Аргумент iterable может быть либо последовательностью, контейнером поддерживающим итерацию, либо объектом итератора. Если iterable уже является кортежем, он возвращается без изменений. Если аргумент не задан, конструктор создает новый пустой кортеж ().

Для разнородных коллекций данных, где доступ по имени более понятен, чем доступ по индексу, collections.namedtuple() может быть более подходящим выбором, чем простой объект кортежа.

Примеры использования создания кортежа и преобразования объектов к типу tuple:

# Создание кортежа тип tuple
>>> ()
# ()
>>> tuple()
# ()
>>> 105,
# (105,)
>>> 1, 'a', 3, 'b'
# (1, 'a', 3, 'b')

# Преобразование строки str в кортеж тип tuple
>>> tuple('abc')
# ('a',' b',' c')

# Преобразование списка list в кортеж тип tuple
>>> tuple([1, 2, 3])
# (1, 2, 3)

# Преобразование множества set в кортеж тип tuple
>>> tuple({1, 2, 3})
# (1, 2, 3)

# Преобразование генератора в кортеж тип tuple
>>> tuple(range(5))
# (0, 1, 2, 3, 4)