Вы находитесь на странице: 1из 13

Кортежи

Кортежи в Python
Кортеж Python

 По аналогии со списками кортежи в Python — это стандартный тип, позволяющий


хранить значения в виде последовательности.
 Они полезны в тех случаях, когда необходимо передать данные, не позволяя изменять
их.
 Кортеж - структура данных, которая используется для хранения
последовательности упорядоченных и неизменяемых элементов.
 Кортежи создают с помощью круглых скобок (). Для создания нужно написать
следующее:
 cake = ('c','a','k','e')
 Или cake = tuple(‘cake‘)
 print(type(cake))
 <class 'tuple‘
Кортеж Python

 Кортежи могут включать однородные и разнородные значения. Но после объявления их


уже нельзя будет поменять:
 mixed_type = ('C',0,0,'K','I','E')

 for i in mixed_type:
 print(i,":",type(i))

 mixed_type[1] = "O"

 Кортежи можно создавать и вот так:


 numbers_tuple = 1,2,3,4,5
 print(type(numbers_tuple))
Кортежи против списков

 Но зачем использовать этот тип данных, если он неизменяемый?


 Кортежи не только предоставляют доступ только для чтения к элементам, но и работают быстрее
списков. Рассмотрим в качестве примера следующий код:
 >>> import timeit
 >>> timeit.timeit('x=(1,2,3,4,5,6,7,8,9)', number=100000)
 0.0018976779974764213
 >>> timeit.timeit('x=[1,2,3,4,5,6,7,8,9]', number=100000)
 0.019868606992531568

 Модуль timeit в Python запускает кусок кода 1 миллион раз (значение по умолчанию) и учитывает
минимальное количество времени, которое потребовалось для запуска этого фрагмента кода.
Кортежи против списков

 Как вы могли заметить, кортежи очень похожи на списки.


 По сути, они являются неизменяемыми списками. Это значит, что после создания
кортежа хранимые в нем значения нельзя удалять или менять.
 Добавлять новые также нельзя:
 numbers_tuple = (1,2,3,4,5)
 numbers_list = [1,2,3,4,5]

 # Добавим число в кортеж


 numbers_tuple.append(6)
Стандартные операции с кортежами

 Значение индекса первого элемента в кортеже — 0. По аналогии со списками эти


значения можно использовать с квадратными скобками [] для получения доступа к
кортежам. Можно использовать и отрицательные значения.
 Индексы позволяют получать отдельные элементы, а с помощью срезов становятся
доступны и подмножества. Для этого нужно использовать диапазоны индексов
 Можно объединять кортежи для создания нового объекта. Операция объединения
выполняет конкатенацию двух кортежей.
Функции кортежей

 В отличие от списков у кортежей нет методов, таких как append(), remove(), extend(), insert() или pop()
опять-таки из-за их неизменяемости. Но есть другие:
 count() возвращает количество повторений элемента в кортеже.
 len() — длину кортежа:
 Функцию any() можно использовать, чтобы определить являются ли элементы кортежа итерируемыми.
Если да, то она вернет True.
 a = (1,) Обратите внимание на запятую (,)
 Функция tuple() используется для конвертации данных в кортеж. Например, так можно превратить
список в кортеж.
 Функция max()q возвращает самый большой элемент последовательности, а min() — самый
маленький. Возьмем следующий пример
Задачи к уроку

 Создайте кортеж с цифрами от 0 до 9 и посчитайте week_temp = (26, 29, 34, 32, 28, 26, 23)
сумму.
sum_temp =
 Возьмите пример предложения. Переведите все в
нижний регистр. Каждую букву данного предложения days =
используйте как кортеж, и посчитайте количество avg_temp = sum_temp / days
букв: а, с, п. (13, 11, 6)
print(int(avg_temp))
 Допишите скрипт для расчета средней температуры.
Постарайтесь посчитать количество дней на основе # требуемый вывод:
week_temp. Так наш скрипт сможет работать с # 28
данными за любой период.
Множества
Множество в языке Питон
Множества

 Множество в python - "контейнер", содержащий не повторяющиеся элементы в


случайном порядке.
 Множество может состоять из различных элементов, порядок элементов в множестве
неопределен. 
 В множество можно добавлять и удалять элементы, можно перебирать элементы
множества, можно выполнять операции над множествами (объединение, пересечение,
разность).
 Можно проверять принадлежность элемента множеству.
 Элементами множества может быть любой неизменяемый тип данных: числа, строки,
кортежи. Изменяемые типы данных не могут быть элементами множества, в частности,
нельзя сделать элементом множества список (но можно сделать кортеж) или другое
множество.
Создание множеств
 Множество задается перечислением всех его элементов в фигурных скобках. 
 Исключением является пустое множество, которое можно создать при помощи функции set().
Если функции set передать в качестве параметра список, строку или кортеж, то она вернёт
множество, составленное из элементов списка, строки, кортежа.
 Каждый элемент может входить в множество только один раз, порядок задания элементов
неважен. Например:
 A = {1, 2, 3}
 B = {3, 2, 3, 1}
 print(A == B)
 Ответ будет True, так как A и B — равные множества.
 Каждый элемент может входить в множество только один раз. set('Hello') вернет множество
из четырех элементов: {'H', 'e', 'l', 'o'}.
Работа с элементами множеств
 Узнать число элементов в множестве можно при помощи функции len.
 Перебрать все элементы множества (в неопределенном порядке!) можно при помощи цикла for:
 Проверить, принадлежит ли элемент множеству можно при помощи операции in, возвращающей
значение типа bool. Аналогично есть противоположная операция not in.
 Для добавления элемента в множество есть метод a.add(3):
 Для удаления элемента x из множества есть два метода: discard и remove.
 Их поведение различается только в случае, когда удаляемый элемент отсутствует в множестве. В
этом случае метод discard не делает ничего, а метод remove генерирует исключение KeyError.
 Наконец, метод pop удаляет из множества один случайный элемент и возвращает его значение.
 Из множества можно сделать список при помощи функции list.
Задание

 Создайте множество из вашего имени


 Добавьте в это множество восклицательный знак
 Посчитайте количество элементов в полученном множестве
 Дан список чисел. Определите, сколько в нем встречается различных чисел: 1 2 3 2 1
46786
 Правильный ответ: 1, 2, 3, 4, 6, 7, 8
 Создайте функцию, которая как входные данные получает два множества и
определяет, равны ли эти множества

Вам также может понравиться