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

Сущность кортежей Python

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

Вот базовый пример кортежа Python:

my_tuple = (1, 2, 3, 'apple', 3.14)

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

Кортежи важны в Python по нескольким причинам: они выполняют определенные роли и варианты использования в программировании.

Вот некоторые ключевые аспекты, подчеркивающие важность кортежей в Python:

  1. Неизменяемость. Кортежи неизменяемы, то есть после их создания их элементы нельзя изменить, добавить или удалить. Эта неизменность полезна в сценариях, где целостность и согласованность данных имеют решающее значение. Это гарантирует, что данные остаются постоянными на протяжении всего своего существования.
  2. Упорядоченная коллекция. Как и списки, кортежи представляют собой упорядоченные коллекции, то есть порядок элементов в кортеже сохраняется. Это делает кортежи подходящими для ситуаций, когда последовательность элементов имеет значение.
  3. Эффективная структура данных. Кортежи более эффективно используют память, чем списки, для небольших коллекций данных фиксированного размера. Поскольку кортежи неизменяемы, Python может оптимизировать использование памяти.
  4. Значения, возвращаемые функцией.Кортежи часто используются для возврата нескольких значений из функции. Это особенно полезно, когда функции необходимо предоставить несколько частей связанной информации как один результат.
  5. Ключи словаря. Благодаря своей неизменяемости кортежи можно использовать в качестве ключей в словарях, а списки — нет. Это делает кортежи ценными при создании словарей с составными ключами.
  6. Параллельное присвоение. Кортежи позволяют легко обмениваться значениями между переменными (распаковка кортежа). Это может упростить код и улучшить читаемость.
  7. Целостность данных. Кортежи подходят для представления постоянных значений или данных, которые не должны изменяться во время выполнения программы. Они могут помочь предотвратить случайное изменение данных.
  8. Производительность. Благодаря своей неизменяемости кортежи могут выполнять определенные операции быстрее, чем списки. Это может быть выгодно в сценариях, где производительность имеет решающее значение.

Чтобы увидеть сравнение между tuple и list, обратитесь к статье Освоение списков Python.

Элементы кортежа: ordered, unchangeable и allow duplicated value. Элементы кортежа индексируются: первый элемент имеет индекс [0], второй элемент имеет индекс [1] и т. д.

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

Неизменяемый. Кортежи неизменяемы. Это означает, что мы не можем изменять, добавлять или удалять элементы после создания кортежа.

Tuple обладает множеством возможностей, которые помогают в программировании на Python.

Ниже приведены некоторые функции tuple:

  1. Доступ к элементам кортежа. Вы можете получить доступ к элементам кортежа, указав индексный номер в квадратных скобках.
mytuple = ("apple", "banana", "cherry")
print(mytuple[1])

Отрицательное индексирование. Отрицательное индексирование означает начало с конца. -1 относится к последнему элементу, -2 относится к предпоследнему элементу и т. д.

mytuple = ("apple", "banana", "cherry")
print(mytuple[-1])

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

mytuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(mytuple[2:5])

2. Обновление кортежей.Кортежи неизменяемы. Это означает, что вы не можете изменять, добавлять или удалять элементы после создания кортежа. Но есть некоторые обходные пути.

Изменить значения кортежа. После создания кортежа изменить его значения невозможно. Кортежи неизменяемы или неизменяемы, как это еще называют. Но есть обходной путь. Вы можете преобразовать кортеж в список, изменить список и преобразовать его обратно в кортеж.

x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)

Аналогично, удалить элементы из кортежа напрямую невозможно. вам нужно преобразовать кортеж в список, а затем применить remove или del из списка, чтобы удалить элемент, а затем снова преобразовать в кортеж.

3. Распаковка кортежей.Когда мы создаем кортеж, мы обычно присваиваем ему значения. Это называется «упаковкой» кортежа. Но в Python нам также разрешено извлекать значения обратно в переменные. Это называется «распаковка».

fruits = ("apple", "banana", "cherry")

(green, yellow, red) = fruits

print(green)
print(yellow)
print(red)

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

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

fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")

(green, yellow, *red) = fruits

print(green)
print(yellow)
print(red)

Если звездочка добавлена ​​к другому имени переменной, отличному от последнего, Python будет присваивать значения переменной до тех пор, пока количество оставшихся значений не совпадет с количеством оставшихся переменных.

fruits = ("apple", "mango", "papaya", "pineapple", "cherry")

(green, *tropic, red) = fruits

print(green)
print(tropic)
print(red)

4. Объединение кортежей. Чтобы объединить два или более кортежей, вы можете использовать оператор +.

tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)

tuple3 = tuple1 + tuple2
print(tuple3)

Если вы хотите умножить содержимое кортежа заданное количество раз, вы можете использовать оператор *.

fruits = ("apple", "banana", "cherry")
mytuple = fruits * 2

print(mytuple)

5. Метод Tuple count():Метод count() возвращает количество раз, когда указанное значение появляется в кортеже.

mytuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
x = mytuple.count(5)
# Return the number of times the value 5 appears in the tuple
print(x)

6. Метод Tuple index():Метод index() находит первое вхождение указанного значения. Метод index() вызывает исключение, если значение не найдено.

mytuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
# Search for the first occurrence of the value 8, and return its position
x = mytuple.index(8)
print(x)

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

Заключение:

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