Кортежи

Привет! Сегодня мы поговорим о кортежах в Python.

Кортеж (Tuple) в Python - это упорядоченная и неизменяемая коллекция элементов. Кортежи очень похожи на списки, но их ключевое отличие заключается в том, что кортежи нельзя изменять после создания.

Преимущества кортежей по сравнению со списками:

  • Неизменяемость: Кортежи нельзя изменить после создания, что может быть полезно в некоторых сценариях.

  • Быстродействие: Кортежи могут быть более эффективными по сравнению со списками в определенных ситуациях.

Создание

Создать пустой кортеж можно с помощью круглых скобок.

my_tuple = (1, 2, 3)

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

my_string = "hello" string_tuple = tuple(my_string) # ('h', 'e', 'l', 'l', 'o') tuple_string = ''.join(string_tuple) # 'hello'

Взаимодействия

Индексы кортежей

К элементам кортежа можно обращаться по индексам, начиная с 0. Индексы могут быть как положительными, так и отрицательными (начиная с конца кортежа).

a = (1, 2, 3) print(a[1]) # 2 print(a[-1]) # 3

Упаковка и распаковка кортежей

my_tuple = 1, 2, 3 # Упаковка кортежа a, b, c = my_tuple # Распаковка кортежа

Присваивание нескольким переменным из кортежа

point = (3, 4) x, y = point

Сравнение кортежей

print((1, 2) == (1, 2)) #True print((2, 3) != (2, 4)) # True print((4, 5) < (4, 3)) # False print((3, 5) < (7,)) # True print(('a', 'bc') > ('a', 'de')) # False

Сортировка кортежей

При сортировке кортежей функция sorted возвращает список, который при помощи функции tuple становится кортежем

not_sorted_tuple = (34, 1, 8, 67, 5, 9, 0, 23) print(not_sorted_tuple) # (34, 1, 8, 67, 5, 9, 0, 23) sorted_tuple = tuple(sorted(not_sorted_tuple)) print(sorted_tuple) # (0, 1, 5, 8, 9, 23, 34, 67)

Методы кортежей

  1. Метод index() выполняет поиск индекса элемента в кортеже

    a = (1, 2, 3, 4) a.index(2) # 1
  2. Метод count() считает сколько раз элемент встречается в кортеже

    a = (1, 2, 2, 2, 3) a.count(2) # 3

Срез кортежа

Списки это итерируемые объекты, то есть вы можете взять список не полностью, а частично, это называется срез кортежа. С помощью срезов можно получать подсписки из кортежа, указывая начальный, конечный и шаг индексов, как в функции range

a = (1, 2, 3, 4, 5) # вывод части кортежа при помощи цикла с функцией range for i in range(1, 4): print(a[i]) # 2 3 4 # тот же код, но записанный короче при помощи среза print(a[1:4]) # 2 3 4

Функции списков

Функция len() возвращает длину кортежа

a = (1, 2, 3, 4) print(len(a)) # 4

Функция sum() возвращает сумму элементов кортежа (если в списке есть не числа, то будет ошибка)

a = (1, 2, 3, 4) print(sum(a)) # 10

Функция min() возвращает наименьший элемент кортежа (если в списке есть переменные разных типов данных, то будет ошибка)

a = (1, 2, 3, 4) print(min(a)) # 1 b = ('a', 'b', 'c', 'd') print(min(b)) # a

Функция max() возвращает наибольший элемент кортежа (если в списке есть переменные разных типов данных, то будет ошибка)

a = (1, 2, 3, 4) print(max(a)) # 4 b = ('a', 'b', 'c', 'd') print(max(b)) # d

Оператор in

Оператор кортежа in работает точно также как и в цикле с функцией range. Он проверяет есть ли данный элемент в списке. Данный оператор похож на метод find() и отличается только выводом

a = (1, 2, 3, 4) print(2 in a) # True print(12 in a) # False

Вывод элементов кортежа

При выводе кортежа его можно "распаковать" при помощи символа *, то есть убрать из вывода символы, которые дают нам понять что это список: квадратные скобки, запятые и кавычки ([],'')

a = (1, 2, 3, 'a') print(a) # (1, 2, 3, 'a') print(*a) # 1 2 3 a

В следующем уроке мы рассмотрим множества и их применение в Python.