Кортежи
@ProgHelpBot- Объявление
- Обращение к элементам
- Удаление с помощью del
- Проверка наличия элемента
- Разложение
- Сравнение
- Получение части
- Методы и функции
- Кортеж как параметр и результат функции
Объявление
Представляет последовательность элементов, которая во многом похожа на список за тем исключением, что кортеж является неизменяемым (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