Кортежи

Кортежи

@ProgHelpBot
  1. Объявление
  2. Обращение к элементам
  3. Удаление с помощью del
  4. Проверка наличия элемента
  5. Разложение
  6. Сравнение
  7. Получение части
  8. Методы и функции
  9. Кортеж как параметр и результат функции

Объявление

Представляет последовательность элементов, которая во многом похожа на список за тем исключением, что кортеж является неизменяемым (immutable) типом.

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

empty1 = ()  # пустой
empty2 = tuple()  # пустой
nums = (1, 2, 3, 4, 5)
people = "Alex", "Bill", "Carl"
alex = ("Alex",)

Для создания кортежа из другого набора элементов (строка, список, множество) также используется функция-конструктор tuple().

people1 = ["Alex", "Bill", "Carl"]
people2 = tuple(people1)  # ('Alex', 'Bill', 'Carl')

Для вывода элементов кортежа можно использовать функцию print().

nums = (1, 2, 3, 4, 5)
print(nums)  # (1, 2, 3, 4, 5)

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

people = ("Alex", "Bill") * 3
print(people)  # ('Alex', 'Bill', 'Alex', 'Bill', 'Alex', 'Bill')

Обращение к элементам

Для обращения к элементам кортежа используются индексы (начиная с 0), представляющие номер элемента в кортеже. Для обращения к элементам с конца используются отрицательные индексы (-1 - последний, -2 - предпоследний и т.д.).

people = ("Alex", "Bill", "Carl")

print(people[0])  # Alex
print(people[1])  # Bill
print(people[-1])  # Carl
print(people[-2])  # Bill

Удаление с помощью del

Добавить или удалить элемент кортежа нельзя, но сам кортеж можно удалить с помощью оператора del:

people = ("Alex", "Bill", "Carl")
del people  # кортеж удалён

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

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

people = ("Alex", "Bill", "Carl")
print("Alex" in people)  # True

Разложение

Можно разложить кортеж на отдельные элементы. Число переменных в этом случае должно быть равно количеству элементов в кортеже.

people = ("Alex", "Bill", "Carl")
alex, bill, carl = people

print(alex)  # Alex
print(bill)  # Bill
print(carl)  # Carl

Сравнение

Два кортежа считаются равными, если они содержат один и тот же набор элементов.

nums1 = (1, 2, 3, 4, 5)
nums2 = (1, 2, 3, 4, 5)

print(nums1 == nums2)  # True

Получение части

Для получения определённой части кортежа применяется специальный синтаксис:

  • tuple[:end] - end указывает на индекс элемента, до которого нужно копировать кортеж;
  • tuple[start:] - start указывает на индекс элемента, начиная с которого надо скопировать элементы;
  • tuple[::step] - step указывает на шаг, через который будут копироваться элементы из кортежа (по умолчанию равен 1).
people = ("Alex", "Bill", "Carl", "Dave", "Eddy")

print(people[:3])  # ('Alex', 'Bill', 'Carl')
print(people[3:])  # ('Dave', 'Eddy')
print(people[3:4])  # ('Dave')
print(people[::2])  # ('Alex', 'Carl', 'Eddy')

Методы и функции

Наиболее важные методы для работы с кортежами:

  • tuple.index(x, start, end) - возвращает положение первого элемента со значением x (при этом поиск ведется от start до end, если эти параметры заданы);
  • tuple.count(x) - возвращает количество элементов со значением x.

Наиболее важные функции для работы с кортежами:

  • len(tuple) - возвращает длину кортежа;
  • min(tuple) - возвращает наименьший элемент кортежа;
  • max(tuple) - возвращает наибольший элемент кортежа;
  • sum(tuple) - возвращает сумму элементов кортежа (только если все элементы - числа).

Кортеж как параметр и результат функции

При передаче кортежа в функцию с помощью оператора * его можно разложить на отдельные значения, которые передаются параметрам функции.

def print_person(name, age):
  print(f"Name: {name}, age: {age}")


alex = ("Alex", 18)
print_person(*alex)  # Name: Alex, age: 18


← Списки

→ Диапазоны

Report Page