Файл: Дополнительные типы данных в python множества, кортежи, словари.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 145
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ДОПОЛНИТЕЛЬНЫЕ ТИПЫ ДАННЫХ В PYTHON Множества, кортежи, словариМножества Множество (set) в Python – неупорядоченная коллекция неизменяемых, уникальных элементов.Способы создания множеств: МножестваМножества Множества можно создавать на основе списков list(set([3, 6, 3, 5])) В момент создания множества из списка удаленыповторяющиеся элементы. Это отличный способ очистить список от повторов. Функция range позволяет создавать множества из диапазона: set(range(10)) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Множества >>> a = {i ** 2 for i in range(10)} # генератор множеств>>> a{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}Множества Множества имеют встроенные функции:add() — добавление элемента;remove() — удаление элемента;clear() – очистка множества;pop() – удаление первого элементаУ множеств в Python много общего с множествами из математикиНекоторые операции над множествами>>> s1 = set(range(5)) >>> s2 = set(range(2)) >>> s1 {0, 1, 2, 3, 4} >>> s2 {0, 1} >>> s1.add('5') # добавить элемент >>> s1 {0, 1, 2, 3, 4, '5'} >>> Операции над множествами
Кортеж условно можно назвать неизменяемым «списком», т.к. к нему применимы многие списковые функции, кроме изменения. Кортежи используются, когда мы хотим быть уверены, что элементы структуры данных не будут изменены в процессе работы программы. Кортежи Кортеж использует меньше памяти, чем список. Кортеж может содержать объекты, которые можно изменить.Функция tuple() берет в качестве аргумента строку или список и превращает его в кортеж:>>> tuple('abc')('a', 'b', 'c') >>> () # создание пустого кортежа () >>> (4) # это не кортеж, а целочисленный объект! 4 >>> (4,) # а вот это – кортеж, состоящий из одного элемента! (4,) >>> b = ('1', 2, '4') # создаем кортеж >>> b ('1', 2, '4') >>> len(b) # определяем длину кортежа 3 >>> t = tuple(range(10)) # создание кортежа с помощью функции range() >>> t + b # слияние кортежей (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '1', 2, '4') >>> r = tuple([1, 5, 6, 7, 8, '1']) # кортеж из списка >>> r (1, 5, 6, 7, 8, '1') >>> С помощью кортежей можно присваивать значения одновременно двум переменным: >>> (x, y) = (10, 5) >>> x 10 >>> y 5 >>> x, y = 1, 3 # если убрать круглые скобки, то результат не изменится >>> x 1 >>> y 3Поменять местами содержимое двух переменных: >>> x, y = y, x Кортеж нельзя изменить, но можно изменить, например, список, входящий в кортеж: >>> t = (1, [1, 3], '3') >>> t[1] [1, 3] >>> t[1][0] = '1' >>> t (1, ['1', 3], '3') СловариВ языке программирования Python словари (тип dict) представляют собой еще одну разновидность структур данных наряду со списками и кортежами. Словарь - это изменяемый (как список) неупорядоченный (в отличие от строк, списков и кортежей) набор элементов "ключ:значение"."Неупорядоченный" – значит, что последовательность расположения пар не важна. Язык программирования ее не учитывает, в следствие чего обращение к элементам по индексам невозможно.Словари Чтобы представление о словаре стало более понятным, проведем аналогию с обычным словарем, например, англо-русским. На каждое английское слово в таком словаре есть русское слово-перевод: cat – кошка, dog – собака, table – стол и т. д. Если англо-русский словарь описать с помощью Python, то английские слова можно сделать ключами, а русские – их значениями:
Синтаксис словаря на Python описывается такой схемой:Часто при выводе словаря последовательность пар "ключ:значение" не совпадает с тем, как было введено:>>> a = {'cat': 'кошка', 'dog': 'собака', ... 'bird': 'птица', 'mouse': 'мышь'}>>> a{'dog': 'собака', 'cat': 'кошка', 'bird': 'птица', 'mouse': 'мышь'}Поскольку в словаре не важен порядок пар, то интерпретатор выводит их так, как ему удобно. В словаре доступ к значениям осуществляется по ключам, которые заключаются в квадратные скобки (по аналогии с индексами списков):>>> a['cat']'кошка'>>> a['bird']'птица'После списков словарь является самым гибким встроенным типом. Если список — это упорядоченная коллекция, то словарь — неупорядоченная. Что такое словарь?Словарь — это ассоциативный массив, или неупорядоченное множество пар ключ: значение, где ключи уникальны. .Основные особенности словарей:Доступ осуществляется по ключу, а не по индексу. По аналогии со списком, в словаре можно получить доступ к элементам в цикле по ключам.Значения словаря хранятся в неотсортированном порядке, более того, ключи могут храниться не в том порядке, в котором они добавляются. По аналогии со списками, словарь может хранить вложенные словари. Словарь может хранить в качестве значений объекты любого типа. Ключ в словаре — неизменяемый тип, может быть строкой, целым или вещественным числом, либо кортежем, состоящим из указанных типов. Словари, как и списки, хранят ссылки на объекты, а не сами объекты Создать словарь можно несколькими способамиD = {'name': 'Ivan', 'age': 18} Или: D = {} D['name'] = 'Ivan' D['age'] = 18 С помощью функции dict() — ключи при этом должны быть строками. С помощью fromkeys() — создает словарь по списку ключей с пустыми значениями: D = {}.fromkeys(['name', 'age'], 0) С помощью конструктора: d = dict((x, x**2) for x in range(10)) Функции/методы словаря
Можно все значения заполнить по умолчанию: >>> {}.fromkeys(['name', 'age'],123) {'age': 123, 'name': 123}
- len(s) - число элементов в множестве (размер множества).
- x in s - принадлежит ли x множеству s.
- set.isdisjoint(other) - истина, если set и other не имеют общих элементов.
- set == other - все элементы set принадлежат other, все элементы other принадлежат set.
- set.issubset(other) или set <= other - все элементы set принадлежат other.
- set.copy() - копия множества.
- set.update(other, ...); set |= other | ... - объединение.
- set.intersection_update(other, ...); set &= other & ... - пересечение.
- set.difference_update(other, ...); set -= other | ... - вычитание.
- set.symmetric_difference_update(other); set ^= other - множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.
- set.add(elem) - добавляет элемент в множество.
- set.remove(elem) - удаляет элемент из множества. KeyError, если такого элемента не существует.
- set.discard(elem) - удаляет элемент, если он находится в множестве.
- set.pop() - удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым.
- set.clear() - очистка множества.
Кортеж условно можно назвать неизменяемым «списком», т.к. к нему применимы многие списковые функции, кроме изменения. Кортежи используются, когда мы хотим быть уверены, что элементы структуры данных не будут изменены в процессе работы программы. Кортежи Кортеж использует меньше памяти, чем список. Кортеж может содержать объекты, которые можно изменить.Функция tuple() берет в качестве аргумента строку или список и превращает его в кортеж:>>> tuple('abc')('a', 'b', 'c') >>> () # создание пустого кортежа () >>> (4) # это не кортеж, а целочисленный объект! 4 >>> (4,) # а вот это – кортеж, состоящий из одного элемента! (4,) >>> b = ('1', 2, '4') # создаем кортеж >>> b ('1', 2, '4') >>> len(b) # определяем длину кортежа 3 >>> t = tuple(range(10)) # создание кортежа с помощью функции range() >>> t + b # слияние кортежей (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '1', 2, '4') >>> r = tuple([1, 5, 6, 7, 8, '1']) # кортеж из списка >>> r (1, 5, 6, 7, 8, '1') >>> С помощью кортежей можно присваивать значения одновременно двум переменным: >>> (x, y) = (10, 5) >>> x 10 >>> y 5 >>> x, y = 1, 3 # если убрать круглые скобки, то результат не изменится >>> x 1 >>> y 3Поменять местами содержимое двух переменных: >>> x, y = y, x Кортеж нельзя изменить, но можно изменить, например, список, входящий в кортеж: >>> t = (1, [1, 3], '3') >>> t[1] [1, 3] >>> t[1][0] = '1' >>> t (1, ['1', 3], '3') СловариВ языке программирования Python словари (тип dict) представляют собой еще одну разновидность структур данных наряду со списками и кортежами. Словарь - это изменяемый (как список) неупорядоченный (в отличие от строк, списков и кортежей) набор элементов "ключ:значение"."Неупорядоченный" – значит, что последовательность расположения пар не важна. Язык программирования ее не учитывает, в следствие чего обращение к элементам по индексам невозможно.Словари Чтобы представление о словаре стало более понятным, проведем аналогию с обычным словарем, например, англо-русским. На каждое английское слово в таком словаре есть русское слово-перевод: cat – кошка, dog – собака, table – стол и т. д. Если англо-русский словарь описать с помощью Python, то английские слова можно сделать ключами, а русские – их значениями:
Синтаксис словаря на Python описывается такой схемой:Часто при выводе словаря последовательность пар "ключ:значение" не совпадает с тем, как было введено:>>> a = {'cat': 'кошка', 'dog': 'собака', ... 'bird': 'птица', 'mouse': 'мышь'}>>> a{'dog': 'собака', 'cat': 'кошка', 'bird': 'птица', 'mouse': 'мышь'}Поскольку в словаре не важен порядок пар, то интерпретатор выводит их так, как ему удобно. В словаре доступ к значениям осуществляется по ключам, которые заключаются в квадратные скобки (по аналогии с индексами списков):>>> a['cat']'кошка'>>> a['bird']'птица'После списков словарь является самым гибким встроенным типом. Если список — это упорядоченная коллекция, то словарь — неупорядоченная. Что такое словарь?Словарь — это ассоциативный массив, или неупорядоченное множество пар ключ: значение, где ключи уникальны. .Основные особенности словарей:Доступ осуществляется по ключу, а не по индексу. По аналогии со списком, в словаре можно получить доступ к элементам в цикле по ключам.Значения словаря хранятся в неотсортированном порядке, более того, ключи могут храниться не в том порядке, в котором они добавляются. По аналогии со списками, словарь может хранить вложенные словари. Словарь может хранить в качестве значений объекты любого типа. Ключ в словаре — неизменяемый тип, может быть строкой, целым или вещественным числом, либо кортежем, состоящим из указанных типов. Словари, как и списки, хранят ссылки на объекты, а не сами объекты Создать словарь можно несколькими способамиD = {'name': 'Ivan', 'age': 18} Или: D = {} D['name'] = 'Ivan' D['age'] = 18 С помощью функции dict() — ключи при этом должны быть строками. С помощью fromkeys() — создает словарь по списку ключей с пустыми значениями: D = {}.fromkeys(['name', 'age'], 0) С помощью конструктора: d = dict((x, x**2) for x in range(10)) Функции/методы словаря
- dict() — создание словаря;
- len() — возвращает число пар;
- clear() — удаляет все значения из словаря;
- copy() — создает псевдокопию словаря;
- deepcopy() — создает полную копию словаря;
- items() — возвращает список значений;
- keys() — возвращает список ключей;
- fromkeys() — создает словарь по заданным ключам с пустыми значениями:
- >>> {}.fromkeys(['name', 'age'])
- {'age': None, 'name': None}
Можно все значения заполнить по умолчанию: >>> {}.fromkeys(['name', 'age'],123) {'age': 123, 'name': 123}
- get() — получает значение по ключу, в случае отсутствия дает None;
- pop() — извлекает значение по ключу с последующим удалением;
- popitem() — извлекает произвольное значение с последующим удалением;
- update() — изменяет значение по ключу;
- values() — возвращает список значений;
- del — оператор удаляет пару ключ: значение по ключу.
- Создать произвольный словарь.
- Добавить новый элемент с ключом типа str и значением типа int.
- Добавить новый элемент с ключом типа кортеж(tuple) и значением типа список(list).
- Получить элемент по ключу.
- Удалить элемент по ключу.
- Получить список ключей словаря.