set - продолжение

set - продолжение

Limera1n

Продолжим изучать set.

Я говорил, что множества поддерживают специализированные математические операции над множествами, давайте посмотрим на это, но прежде чем посмотрим на них, создадим два простых set:

Чтож, первый метод, на который мы посмотрим называется issubset, если перевести на русский, он значит - является одно множество подмножеством другого множества. Да, много тавтологий, такое происходит довольно часто :)

В данном случае множество set1 является подмножеством set2, так как множество set2 полностью включает в себя множество set1.

Так мы можем проверить это:

Получаем ответ True. А если мы спросим, является ли set2 "сабсетом" set1, то получим False, потому что set1 не включает пятерку.

А вот если мы спросим, является ли set2 супер сетом, то есть надмножеством set1, то получим True:

Дальше рассмотрим случай, когда нужно проверить все ли элементы разные, если действительно ни одного совпадения не будет, то получим True:

Другой полезный метод называется union, или объединение,давайте рассмотрим его:

Важный момент, union возвращает новое множество. В данном случае, все элементы из множества set2 будут добавлены в set1 и будет в итоге возвращено новое множество set3, которое хранит в себе элементы из обоих множеств set1 и set2. Причем, set1 и set2 так и остались нетронутыми, а вот set3 является объединением двух этих множеств.

Другой важный метод называется intersection или пересечение. Он так же возвращает новый объект множества, и возвращает в этом множестве те элементы, которые присутствуют в обоих множествах. Если мы спросим, какие элементы set1 и set2 пересекаются в set3, то получим это:

Мы получили такой ответ, потому что эти элементы присутствуют в обоих множествах.

Так же у нас есть противоположный метод, который называется difference. Он выводит нам те элементы, у которых нет совпадений в множествах. Так же есть symmetric difference. Разница в том, что обычный difference выдает элементы из левого множества, которые отсутствуют в правом, а symmetric difference выдает и из того, и из другого. Поясню, что левое и правое множество я использовал, как пример. Смотря на скрин выше, по бокам от interseption левое и правое, думаю так понятнее.

В первом выводе у нас как раз обычный difference, который вывел нам элемент из set1, он вывел нолик, потому что в правом set2 он отсутствует. А вот set4 нам вывел и нолик и пятерку, так как в правом отсутствует нолик, а в левом отсутствует пятерка. Вот и вся разница между этими методами.


В следующий раз поговорим о методах update и других.

Report Page