Кортежи очень похожи на списки, но имеют одно важное отличие — они неизменяемые. В остальном, они также могут состоять из данных разных типов и использовать индексы, которые определяют конкретный порядок элементов.
Индекс начинается с нуля, как и в случае списков, а отрицательный индекс — с -1. Этот индекс указывает на последний элемент кортежа.
Где используется?
Кортежи — распространенная структура данных для хранения последовательностей в Python.
.index()
— используется для вывода индекса элемента..count()
— используется для подсчета количества элементов в кортеже.sum()
— складывает все элементы кортежа.min()
— показывает элемент кортежа с наименьшим значением.max()
— показывает элемент кортежа с максимальным значением.len()
— показывает количество элементов кортежа.
Рекомендации по работе с кортежами
- Кортежи создаются с помощью круглых скобок:
()
; - Элементы внутри кортежей разделяются запятыми;
- Важно соблюдать особенности синтаксиса, характерные для каждого отдельного типа данных в кортеже — кавычки для строк, числа и булевые значения без кавычек и так далее.
Дальше — кортеж, включающий элементы разных типов:
>>> p_tup = ("Лондон", "Пекин", 44, True)
>>> print(p_tup)
('Лондон', 'Пекин', 44, True)
Доступ к элементам: получить элементы кортежа можно с помощью соответствующего индекса в квадратных скобках.
Например, для получения элемента «Лондон» нужно использовать следующий индекс: p_tup[0]
А для 44: p_tup[2]
Последний элемент следующего кортежа — булево True
. Доступ к нему мы получаем с помощью функции print
.
>>> p_tup = ("Лондон", "Пекин", 44, True)
>>> print(p_tup[3])
True
Пример получения первого элемента кортежа.
>>> p_tup = ("Лондон", "Пекин", 44, True)
>>> print(p_tup[0])
'Лондон'
Советы:
- Обратное индексирование: по аналогии с элементами списка элементы кортежа также можно получить с помощью обратного индексирования. Оно начинается с -1. Это значение указывает на последний элемент.
Так, для получения последнего элементp_tup
нужно писатьp_tup[-1]
.p_tup[-2]
вернет второй элемент с конца и так далее. - Главное отличие кортежей от списков — они неизменяемые. Кортежам нельзя добавлять или удалять элементы.
Поэтому эта структура используется, когда известно, что элементы не будут меняться в процессе работы программы.
>>> p_tup = ("Лондон", "Пекин", 44, True)
>>> print(p_tup[-1])
True
Функция .index()
.index()
— полезный метод, используемый для получения индекса конкретного элемента в кортеже.
Посмотрим на примере.
>>> p_tup = ("Лондон", "Пекин", 44, True)
>>> print(p_tup.index("Лондон"))
0
Функция .count()
Метод .count()
подходит для определения количества вхождений определенного элемента в кортеже.
В примере ниже можно увидеть, что считается количество вхождений числа 101 в списке p_cup
. Результат — 2.
>>> p_tup = (5, 101, 42, 3, 101)
>>> print(p_tup.count(101))
2
Функция sum()
Функция sum()
возвращает общую сумму чисел внутри кортежа.
>>> lucky_numbers = (5, 55, 4, 3, 101, 42)
>>> print(sum(lucky_numbers))
210
Функция min()
Функция min()
вернет элемент с самым маленьким значением в кортеже.
>>> lucky_numbers = (5, 55, 4, 3, 101, 42)
>>> print(min(lucky_numbers))
5
Функция max()
Функция max()
вернет элемент с максимальным значением в кортеже.
>>> lucky_numbers = (5, 55, 4, 3, 101, 42)
>>> print(max(lucky_numbers))
101
Задачи к уроку
Попробуйте решить задачи к этому уроку для закрепления знаний.
1. Создайте кортеж с цифрами от 0 до 9 и посчитайте сумму.
# данный код
numbers =
print(sum(numbers))
# требуемый вывод:
# 45
2. Введите статистику частотности букв в кортеже.
# данный код
long_word = (
'т', 'т', 'а', 'и', 'и', 'а', 'и',
'и', 'и', 'т', 'т', 'а', 'и', 'и',
'и', 'и', 'и', 'т', 'и'
)
print("Количество 'т':", )
print("Количество 'a':", )
print("Количество 'и':", )
# требуемый вывод:
# Колличество 'т': 5
# Колличество 'а': 3
# Колличество 'и': 11
- Допишите скрипт для расчета средней температуры.
Постарайтесь посчитать количество дней на основеweek_temp
. Так наш скрипт сможет работать с данными за любой период.
# данный код
week_temp = (26, 29, 34, 32, 28, 26, 23)
sum_temp =
days =
mean_temp = sum_temp / days
print(int(mean_temp))
# требуемый вывод:
# 28
Файл со всем заданиями: https://gitlab.com/PythonRu/python-dlya-nachinayushih/-/blob/master/lesson_7.py.
Тест по кортежам
Пройдите тест к этому уроку для проверки знаний. В тесте 5 вопросов, количество попыток неограниченно.
Если нашли ошибку, опечатку или знаете как улучшить этот урок, пишите на почту. Ее можно найти внизу сайта.