Кортежи - это
неизменяемые последовательности, обычно используемые для хранения коллекций разнородных данных. Например двойной кортеж, создаваемый
встроенной функцией enumerate(). Кортежи также используются в тех случаях, когда требуется неизменяемая последовательность однородных данных.
Кортежи могут быть созданы несколькими способами:
- Используя пару скобок для обозначения пустого кортежа:
()
. - Использование запятой для одиночного кортежа:
a,
или (a,)
. - Разделение элементов запятыми:
a, b, c
или (a, b, c)
:
Обратите внимание, что запятая создает кортеж, а не скобки. Скобки необязательны, за исключением случая пустого кортежа, или когда они необходимы, чтобы избежать синтаксической двусмысленности.
Например:f(a, b, c)
- вызов функции с тремя аргументами, f((a, b, c))
- вызов функции с кортежем в качестве единственного аргумента.
- Использование встроенного класса
tuple()
:tuple()
- создаст пустой кортеж,tuple(iterable)
- преобразует контейнер, поддерживающим итерацию в кортеж.
Конструктор класса
tuple()
создает кортеж, элементы которого
совпадают и находятся в том же порядке, что и элементы итератора
iterable
. Аргумент
iterable
может быть либо
последовательностью,
контейнером поддерживающим итерацию, либо
объектом итератора. Если
iterable
уже является кортежем, он возвращается без изменений. Если аргумент не задан, конструктор создает новый пустой кортеж
()
.
Примеры использования создания кортежа и преобразования объектов к типу 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)