Множества
Привет! Сегодня мы поговорим о множествах в Python.
Множество (set) в Python - это неупорядоченная коллекция уникальных элементов. В отличие от списка или кортежа, множество не может содержать одинаковые элементы. Множества часто используются для выполнения операций над уникальными значениями.
Создание
Множество можно создать при помощи функции set() или используя фигурные скобки {}. Однако, если вы используете пустые фигурные скобки, будет создан словарь, а не множество. Пустое множество создается только с помощью set(). Как и в списках и кортежах, элементы множества могут быть разных типов данных.
my_set = set() # {}
filled_set = {1, 2, 3} # {1, 2, 3}
filled_set_2 = {1, '2', 3} # {1, '2', 3}
from_list = set([4, 5, 6]) # {4, 5, 6}
from_string = set("hello") # {'h', 'e', 'l', 'o'}
from_tuple = set((7, 8, 9)) # {7, 8, 9}
from_range = set(range(1, 5)) # {1, 2, 3, 4}
set_generator = {x for x in range(0, 5, 2)} # {0, 2, 4}
Множество не может содержать списки или другие множества, но может содержать кортежи.
set_list = {[1, 2, 3]} # будет ошибка
set_list = {{1, 2, 3}} # тоже будет ошибка
set_list = {(1, 2, 3)} # {(1, 2, 3)}
Множества не поддерживают индексацию, поэтому они не имеют порядка элементов. При выводе множества порядок элементов может быть произвольным.
Взаимодействия
Сравнение множеств
Множества поддерживают операции сравнения, такие как проверка на равенство (==), неравенство (!=), подмножество (<=, <), надмножество (>=, >), а также различные операции над множествами.
my_set1 = {1, 2, 3, 3, 3, 3}
my_set2 = {2, 1, 3}
my_set3 = {1, 2, 3, 4}
print(my_set1 == my_set2) # True
print(my_set1 == my_set3) # False
print(my_set1 != my_set3) # True
print(my_set1 > my_set3) # True
print(my_set1 < my_set2) # False
Методы кортежей
-
Метод add() добавляет элемент в множество
a = {1, 2, 3, 4} a.add(5) print(a) # {1, 2, 3, 4, 5}
-
Метод clear() очищает множество
a = {1, 2, 3} a.clear() print(a) # {}
-
Метод difference() возвращает разность двух множеств
a = {1, 2, 3} b = {3, 4, 5} print(a.difference(b)) # {1, 2}
-
Метод discard() удаляет элемент из множества, если такого элемента нет в множестве не вызывает ошибку
a = {1, 2, 3} a.discard(2) print(a) # {1, 3} a.discard(6) print(a) # {1, 3}
-
Метод intersection() возвращает пересечение двух множеств
a = {1, 2, 3} b = {3, 4, 5} print(a.intersection(b)) # {3}
-
Метод issubset() проверяет, является ли одно множество подмножеством другого
a = {1, 2, 3, 4, 5} b = {2, 3, 4} print(b.issubset(a)) # True
-
Метод issuperset() проверяет, является ли одно множество надмножеством другого
a = {1, 2, 3, 4, 5} b = {2, 3, 4} print(a.issuperset(b)) # True
-
Метод pop() удаляет случайный элемент из множества
a = {1, 2, 3} a.pop() print(a) # {1, 2}
-
Метод remove() удаляет элемент из множества, если такого элемента нет в множестве вызывает ошибку
a = {1, 2, 3} a.remove(3) print(a) # {1, 2} a.remove(6) # вызывает ошибку
-
Метод symmetric_difference() возвращает симметричную разность (всё, кроме пересечения) двух множеств
a = {1, 2, 3} b = {3, 4, 5} print(a.symmetric_difference(b)) # {1, 2, 4, 5}
-
Метод union() возвращает объединение двух множеств
a = {1, 2, 3} b = {3, 4, 5} print(a.union(b)) # {1, 2, 3, 4, 5}
Функции множеств
Функция len() возвращает длину множества
a = {1, 2, 3, 4}
print(len(a)) # 4
Функция sum() возвращает сумму элементов множества (если в множестве есть не числа, то будет ошибка)
a = {1, 2, 3, 4}
print(sum(a)) # 10
Функция min() возвращает наименьший элемент множества (если в множестве есть переменные разных типов данных, то будет ошибка)
a = {1, 2, 3, 4}
print(min(a)) # 1
b = {'a', 'b', 'c', 'd'}
print(min(b)) # a
Функция max() возвращает наибольший элемент множества (если в множестве есть переменные разных типов данных, то будет ошибка)
a = {1, 2, 3, 4}
print(max(a)) # 4
b = {'a', 'b', 'c', 'd'}
print(max(b)) # d
Оператор in
Оператор множества in работает точно также как и в цикле с функцией range. Он проверяет есть ли данный элемент в множестве
a = {1, 2, 3, 4}
print(2 in a) # True
print(12 in a) # False
Вывод элементов множества
При выводе множества его можно "распаковать" при помощи символа *, то есть убрать из вывода символы, которые дают нам понять что это множество: фигурные скобки, запятые и кавычки ([],'')
a = {1, 2, 3, 'a'}
print(a) # (1, 2, 3, 'a')
print(*a) # 1 2 3 a
В следующем уроке мы рассмотрим словари и их применение в Python.