Кортежи
Привет! Сегодня мы поговорим о кортежах в 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)
Методы кортежей
-
Метод index() выполняет поиск индекса элемента в кортеже
a = (1, 2, 3, 4) a.index(2) # 1
-
Метод 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.