Кортежи

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


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

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

Пример создания кортежа:
# Пример создания кортежа my_tuple = (1, 2, 3, 4) print(my_tuple) # Вывод: (1, 2, 3, 4) # Кортеж из одного элемента single_tuple = (5,) # Запятая обязательна print(single_tuple) # Вывод: (5,) # Кортеж без скобок (через запятую) another_tuple = 6, 7, 8 print(another_tuple) # Вывод: (6, 7, 8)

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

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

Пример :
my_tuple = (10, 20, 30, 40) # Доступ по индексу print(my_tuple[0]) # Вывод: 10 print(my_tuple[2]) # Вывод: 30 # Отрицательные индексы (доступ с конца) print(my_tuple[-1]) # Вывод: 40

Неизменяемость кортежей

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

Пример :
my_tuple = (1, 2, 3) # Попытка изменить элемент вызовет ошибку # my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment # Попытка добавить элемент вызовет ошибку # my_tuple.append(4) # AttributeError: 'tuple' object has no attribute 'append'

Основные операции с кортежами

Конкатенация кортежей

Кортежи можно объединять с помощью оператора +.

tuple1 = (1, 2, 3) tuple2 = (4, 5, 6) combined_tuple = tuple1 + tuple2 print(combined_tuple) # Вывод: (1, 2, 3, 4, 5, 6)
Повторение кортежей

Кортежи можно повторять с помощью оператора *.

repeated_tuple = tuple1 * 3 print(repeated_tuple) # Вывод: (1, 2, 3, 1, 2, 3, 1, 2, 3)
Проверка наличия элемента

Для проверки наличия элемента в кортеже используется оператор in.

print(2 in tuple1) # Вывод: True print(10 in tuple1) # Вывод: False

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

Кортежи поддерживают только два метода:

  • count() — возвращает количество вхождений элемента в кортеж.
  • index() — возвращает индекс первого вхождения элемента.
my_tuple = (1, 2, 2, 3, 4, 2) # Подсчет количества вхождений print(my_tuple.count(2)) # Вывод: 3 # Поиск индекса элемента print(my_tuple.index(3)) # Вывод: 3

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

Кортежи поддерживают итерацию с помощью цикла for.

my_tuple = (10, 20, 30) for item in my_tuple: print(item)
Вывод
10
20
30

Распаковка кортежей

Кортежи можно "распаковать" в отдельные переменные.

my_tuple = (1, 2, 3) a, b, c = my_tuple print(a) # Вывод: 1 print(b) # Вывод: 2 print(c) # Вывод: 3

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


Использование кортежей

Кортежи часто используются в следующих случаях:

  1. Хранение константных данных: Например, координаты точки (x, y).
  2. Возврат нескольких значений из функции:
    def get_user_info(): return "Alice", 25, "New York" name, age, city = get_user_info() print(name, age, city) # Вывод: Alice 25 New York
  3. Ключи в словарях: Кортежи могут быть ключами в словарях, так как они неизменяемы.

    my_dict = {(1, 2): "value"} print(my_dict[(1, 2)]) # Вывод: value

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

Кортежи можно сравнивать между собой. Сравнение происходит поэлементно.

tuple1 = (1, 2, 3) tuple2 = (1, 2, 4) print(tuple1 < tuple2) # Вывод: True (3 < 4)

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


Примеры решения задач

Задача: Создайте кортеж, содержащий имена трех людей, и выведите их в формате: "Привет, [имя]!".

Решение:
Чтобы решить задачу, нам нужно создать кортеж с именами трёх человек, а затем вывести приветствие для каждого имени в заданном формате.

# Создаём кортеж с именами names = ("Иван", "Мария", "Сергей") # Перебираем имена и выводим приветствия for name in names: print(f"Привет, {name}!")
Результат работы программы:
Привет, Иван!
Привет, Мария!
Привет, Сергей!

Таким образом, программа выводит приветственное сообщение для каждого человека, имя которого содержится в кортеже.


Задача: Напишите программу, которая возвращает кортеж из двух элементов: минимального и максимального значения в кортеже.

Решение:
Программа должна принимать на вход кортеж чисел, находить минимальное и максимальное значения среди них, а затем возвращать эти значения в виде кортежа.

def find_min_max(values): # Находим минимальное и максимальное значения в кортеже minimum = min(values) maximum = max(values) # Возвращаем результат в виде кортежа return (minimum, maximum) # Пример использования функции input_tuple = (3, 8, 1, 12, 15, 5) result = find_min_max(input_tuple) print(result)
Обяснение:
  1. Функция find_min_max принимает кортеж чисел values.
  2. Используем встроенную функцию min, чтобы найти минимальное значение в кортеже.
  3. Используем встроенную функцию max, чтобы найти максимальное значение в кортеже.
  4. Возвращаем результат в виде кортежа, содержащего минимальное и максимальное значения.
Пример вывода:

При вызове функции с кортежем (3, 8, 1, 12, 15, 5), результатом будет:

(1, 15)

Больше задач для практики вы найдёте в задачнике.


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться