множества_-_лекция_pgcQsQ

Содержание

Слайд 2

Множества в языке Python

Множество – это не упорядоченная коллекция элементов.
Когда мы имели

Множества в языке Python Множество – это не упорядоченная коллекция элементов. Когда
дело со списками или кортежами, то там, когда мы добавляли элементы. Допустим, создавали список и в него добавляли три элемента, то они идут в том же порядке, в котором мы их добавляли.
По индексно. Для примера: 1, 2, 3
Т.е как мы клали элементы в этот список, либо в этот кортеж… Соответственно, в таком же порядке эти элементы и находятся в данной коллекции.

Слайд 3

Множества в языке Python

В случае с множествами всё несколько иначе. Множества –

Множества в языке Python В случае с множествами всё несколько иначе. Множества
это, повторяемся, неупорядоченная коллекция. Это нужно понимать, это нужно запомнить.
Т.е если вы кладёте всё те же 1, 2, 3, то они могут идти в произвольном порядке. Мало того, если вы перезапустите код, то порядок может снова измениться и быть совершенно другим.
Поэтому не стоит рассчитывать на то, что если вы положили во множество два элемента, условно говоря, какие нибудь «яблоко» или «банан». Разумеется, не стоит думать, что «яблоко» будет идти первым, а «банан» вторым.

Слайд 4

Множества в языке Python

Второй момент отличия от списков и кортежей это то,

Множества в языке Python Второй момент отличия от списков и кортежей это
что множество не содержит повторяющихся элементов. Все дубликаты удаляются при попытке добавления их во множества. Удаляются без ошибок, т.е просто если вы кладёте, скажем, 5 элементов и из них один или два элемента повторяются несколько раз, то в множества попадут только уникальные элементы.
Все дубли будут выкинуты.

Слайд 5

Множества в языке Python

Например, если кладёте, условно, те же «два яблока» и

Множества в языке Python Например, если кладёте, условно, те же «два яблока»
«один банан», то во множестве будут только одно яблоко и один банан.
И т.к множество это неупорядоченная коллекция, то, соответственно множества не поддерживают индексирование.

Слайд 6

Множества в языке Python

Давайте попробуем поработать со множествами.
Учимся определять множества и их

Множества в языке Python Давайте попробуем поработать со множествами. Учимся определять множества
создавать.
Первый способ:
Что у нас выведет при распечатке?
Что будет если несколько раз запускать код?

Слайд 7

Множества в языке Python

Окей, мы создали множество с помощью литерала. Теперь попробуем

Множества в языке Python Окей, мы создали множество с помощью литерала. Теперь
создать его с помощью конструктора:
Обратите внимание на вывод.

Слайд 8

Множества в языке Python

Третий способ создания множества: с помощью генератора.
Снова обращаем внимание

Множества в языке Python Третий способ создания множества: с помощью генератора. Снова
на вывод. В данном случае порядок сохраняется.

Слайд 9

Множества в языке Python

И если мы просто числа сунем обычные в генератор.

Множества в языке Python И если мы просто числа сунем обычные в
То он также выведет нам все числа по порядку, по возрастанию.

Слайд 10

Множества в языке Python

Как создать пустое множество?

Множества в языке Python Как создать пустое множество?

Слайд 11

Множества в языке Python

Чтобы создать пустое множество, достаточно заюзать s5 = set()

Множества в языке Python Чтобы создать пустое множество, достаточно заюзать s5 = set()

Слайд 12

Множества в языке Python

На что еще стоит обратить внимание?
Множества очень удобно использовать

Множества в языке Python На что еще стоит обратить внимание? Множества очень
для удаление дубликатов из списка. Поскольку во множестве добавляются только уникальные элементы, все дубли отбрасываются… Соответственно, перед нами встаёт задача из списка взять только уникальные элементы, убрав дубли.
Можем воспользоваться командой set для этой задачи.

Слайд 13

Множества в языке Python

Например, у нас есть список цифр. И из него

Множества в языке Python Например, у нас есть список цифр. И из
нам надо получить только уникальные элементы.

Слайд 14

Множества в языке Python

Соответственно, как можно преобразовать полученное множество в список изначальный?

Множества в языке Python Соответственно, как можно преобразовать полученное множество в список изначальный?

Слайд 15

Множества в языке Python

Окей, посмотрим, какие операции над множествами мы можем производить.

Множества в языке Python Окей, посмотрим, какие операции над множествами мы можем производить.

Слайд 16

Множества в языке Python

Еще мы можем проводить операции вычитания. Мы можем из

Множества в языке Python Еще мы можем проводить операции вычитания. Мы можем
одного множества вычесть другое множество.

Слайд 17

Множества в языке Python

Операция объединения.

Множества в языке Python Операция объединения.

Слайд 18

Множества в языке Python

Операция пересечения.

Множества в языке Python Операция пересечения.

Слайд 19

Множества в языке Python

Получаем множество из элементов. Получаем все символы, кроме дублей.

Множества в языке Python Получаем множество из элементов. Получаем все символы, кроме дублей.

Слайд 20

Множества в языке Python

Итак. С операциями над множествами мы разобрались.
Теперь посмотрим на

Множества в языке Python Итак. С операциями над множествами мы разобрались. Теперь
методы, которые предлагают нам для работы со множествами.
Первый метод: set.copy(): получилось два !разных! множества.

Слайд 21

Множества в языке Python

Второй метод set.add(elem): ну тут и так всё понятно.

Множества в языке Python Второй метод set.add(elem): ну тут и так всё понятно.

Слайд 22

Множества в языке Python

Третий метод set.remove() – удаляет элемент. В то же

Множества в языке Python Третий метод set.remove() – удаляет элемент. В то
время если удаляемого элемента во множестве и не существовало – то будет выдана ошибка.

Слайд 23

Множества в языке Python

Четвёртый метод set.discard() – удаляет элемент, если он находится

Множества в языке Python Четвёртый метод set.discard() – удаляет элемент, если он
во множестве. Ошибки не будет, в отличие от метода remove.

Слайд 24

Множества в языке Python

Пятый метод set.pop() – возвращает и удаляет первый элемент

Множества в языке Python Пятый метод set.pop() – возвращает и удаляет первый
из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым.

Слайд 25

Множества в языке Python

Шестой метод set.clear() – очистка множества.

Множества в языке Python Шестой метод set.clear() – очистка множества.

Слайд 26

Множества в языке Python

Последний set – frozenset – замороженное множество. Короче говоря,

Множества в языке Python Последний set – frozenset – замороженное множество. Короче
множество, которое мы не можем изменить. Т.е если мы создадим замороженное множество и попробуем в него что-то добавить, то нам даже не будет предложено подсказками метод add.

Слайд 27

Множества в языке Python

Последний set – frozenset – замороженное множество. Короче говоря,

Множества в языке Python Последний set – frozenset – замороженное множество. Короче
множество, которое мы не можем изменить. Т.е если мы создадим замороженное множество и попробуем в него что-то добавить, то нам даже не будет предложено подсказками метод add.

Слайд 28

Словари

Словари в питоне – это еще одна коллекция элементов, так же как

Словари Словари в питоне – это еще одна коллекция элементов, так же
и множество неупорядоченная коллекция элементов, произвольных объектов с доступом по ключу.
Т.е у словарей уже есть ключ и получить доступ к его элементам можно по ключу. Словари в питоне еще называют иногда ассоциативными массивами или хеш-таблицами.
Т.е есть индексированные списки, и есть ассоциативные массивы, в которых элементы доступны по специальным ключам-строкам.
Т.е есть какие-либо ассоциации.

Слайд 29

Словари

Способы создания словарей с помощью литерала.

Словари Способы создания словарей с помощью литерала.

Слайд 30

Словари

Создадим что-нибудь полезное, например, продукты:

Словари Создадим что-нибудь полезное, например, продукты:

Слайд 31

Словари

Теперь попробуем создать словарь через конструктор:

Словари Теперь попробуем создать словарь через конструктор:

Слайд 32

Словари

Обратим внимание на то, что в конструкторе мы используем уже знакомые нам

Словари Обратим внимание на то, что в конструкторе мы используем уже знакомые
именованные аргументы и когда мы работает с именованными аргументами, то заключать их в кавычки не нужно.
Более того, если мы попытаемся это сделать, то Python выдаст нам ошибку. И скажет, что мы дурачки.

Слайд 33

Словари

Следующие, более экстравагантные способы, которые, тем не менее, могут нам так или

Словари Следующие, более экстравагантные способы, которые, тем не менее, могут нам так
иначе пригодиться: - это создание словаря из списка или кортежа.
Несмотря на то, что словарь и список – это, по сути, не похожие типы, не похожие по структуре, но тем не менее существует такая возможность для отдельных видов списков преобразовать их в словарь.
Делается с помощью уже использованного конструктора dict и для этого список должен хранить набор вложенных списков.

Слайд 34

Словари

Каждый вложенный список при этом должен состоять из двух элементов и при

Словари Каждый вложенный список при этом должен состоять из двух элементов и
конвертации в словарь, первый элемент станет ключом, а второй значением.
Соответственно, попробуем создать список users и преобразовать его в словарь.

Слайд 35

Словари

Словари

Слайд 36

Словари

Аналогичное можно сделать и с кортежами.

Словари Аналогичное можно сделать и с кортежами.

Слайд 37

Словари

Далее рассмотрим уже метод словарей fromcase и с помощью данного метода мы

Словари Далее рассмотрим уже метод словарей fromcase и с помощью данного метода
можем быстро создать какой-нибудь однотипный словарь с однотипными значениями.

Слайд 38

Словари

Также для создания словарей мы так же можем использовать уже знакомые нам

Словари Также для создания словарей мы так же можем использовать уже знакомые нам генераторы.
генераторы.

Слайд 39

Словари

Как мы можем попробовать обратиться к значению в словаре?
Разумеется, следует помнить, что

Словари Как мы можем попробовать обратиться к значению в словаре? Разумеется, следует
если мы обратимся к несуществующему ключу, то получим ошибку.