Python: кортеж (tuple)

Кортеж — это коллекция, похожая на список Python. Основное отличие в том, что мы не можем изменить кортеж после его создания.


Создание кортежа в Python

Мы создаём кортеж, помещая элементы внутри круглых скобок (). Например,

numbers = (1, 2, -5)

print(numbers)

# Output: (1, 2, -5)

Подробнее о создании кортежа

Создание кортежа с помощью конструктора tuple()

Мы также можем создать кортеж с помощью конструктора tuple(). Например,

tuple_constructor = tuple(('Jack', 'Maria', 'David'))
print(tuple_constructor)

# Output: ('Jack', 'Maria', 'David')

Разные типы кортежей в Python

Вот разные типы кортежей, которые мы можем создать в Python.

Пустой кортеж

# создаём пустой кортеж
empty_tuple = ()
print(empty_tuple)

# Output: ()

Кортеж разных типов данных

# кортеж строк
names = ('James', 'Jack', 'Eva')
print (names)

# кортеж чисел с плавающей точкой
float_values = (1.2, 3.4, 2.1)
print(float_values)

Кортеж смешанных типов данных

# кортеж со строкой и числом
mixed_tuple = (2, 'Hello', 'Python')
print(mixed_tuple)

# Output: (2, 'Hello', 'Python')

Характеристики кортежа

Кортежи:

  • Упорядочены — они сохраняют порядок элементов.

  • Неизменяемы — их нельзя изменить после создания.

  • Допускают дубликаты — могут содержать повторяющиеся значения.


Доступ к элементам кортежа

Каждый элемент в кортеже связан с числом, известным как индекс.

Индекс всегда начинается с 0, то есть первый элемент кортежа имеет индекс 0, второй элемент — индекс 1, и так далее.

Индекс элемента кортежа

Доступ к элементам по индексу

Мы используем индексы для доступа к элементам кортежа. Например,

languages = ('Python', 'Swift', 'C++')

# доступ к первому элементу
print(languages[0])   # Python

# доступ к третьему элементу
print(languages[2])   # C++
Доступ к элементам кортежа

Кортеж нельзя изменить

Кортежи Python неизменяемы. Мы не можем добавлять, изменять или удалять элементы кортежа.

Если мы попытаемся изменить кортеж, мы получим ошибку. Например,

cars = ('BMW', 'Tesla', 'Ford', 'Toyota')

# пытаемся изменить кортеж
cars[0] = 'Nissan'    # ошибка

print(cars)

Длина кортежа

Мы используем функцию len() для нахождения количества элементов в кортеже. Например,

cars = ('BMW', 'Tesla', 'Ford', 'Toyota')
print('Total Items:', len(cars))

# Output: Total Items: 4

Итерация по кортежу

Мы используем цикл for для перебора элементов кортежа. Например,

fruits = ('apple','banana','orange')

# перебираем кортеж
for fruit in fruits:
    print(fruit)

Вывод

apple
banana
orange

Подробнее о кортежах в Python

Проверка наличия элемента в кортеже

Мы используем ключевое слово in, чтобы проверить, существует ли элемент в кортеже. Например,

colors = ('red', 'orange', 'blue')

print('yellow' in colors)    # False
print('red' in colors)       # True

Здесь:

  • yellow отсутствует в colors, поэтому 'yellow' in colors возвращает False;

  • red присутствует в colors, поэтому 'red' in colors возвращает True.

Изменение элементов кортежа

Кортежи Python неизменяемы — мы не можем изменить элементы кортежа после его создания.

Если мы попытаемся это сделать, получим ошибку. Например,

fruits = ('apple', 'cherry', 'orange')

# пытаемся изменить второй элемент на 'banana'
fruits[1] = 'banana'

print(fruits)

# Output: TypeError: 'tuple' object does not support item assignment

Удаление кортежей

Мы не можем удалять отдельные элементы кортежа. Однако мы можем удалить сам кортеж с помощью оператора del. Например,

animals = ('dog', 'cat', 'rat')

# удаляем кортеж
del animals

Здесь мы удалили кортеж animals.

Создание кортежа с одним элементом

Когда мы хотим создать кортеж с одним элементом, мы можем сделать следующее:

var = ('Hello')
print(var)  # строка

Но это не создаст кортеж — это будет строка.

Чтобы решить эту проблему, нужно поставить запятую после элемента. Например,

var = ('Hello',)
print(var)  # кортеж

# Output: ('Hello',)

Видео: списки и кортежи в Python