В этой статье я разбираю Множества в Python 3. Вы узнаете, какими свойствами обладают множества и как можно с ними работать.
Свойства множеств
Я уже писал про последовательности и множества в Python 3. Множество — это неупорядоченная совокупность объектов, в которой не может быть дубликатов. Множество можно изменять, добавляя и удаляя из него объекты.
Объявить множество можно с помощью фигурных скобок, но в отличии от словарей не нужно указывать ключи. Создание множества и получение некоторых свойств множества показаны ниже:
### Код
my_set = {1, 2, 3, 4, 5} # создание множества
print(type(my_set)) # тип
print(len(my_set)) # длина
print(my_set)
### Исполнение
<class 'set'>
5
{1, 2, 3, 4, 5}
Так как множество не упорядочены, то: обращение по индексу, срезы, конкатенация и повторение — здесь не работают.
Множества часто используются для двух целей:
- для удаления дубликатов;
- для проверки, входит ли элемент в множество (поиск в множестве занимает очень мало времени даже для очень больших множеств).
Работа с множествами
Добавить элемент в множество можно с помощью метода add():
### Код
my_set = {1, 2, 3, 4, 5}
my_set.add(6)
print(my_set)
### Исполнение
{1, 2, 3, 4, 5, 6}
Можно одно множество соединить с другим с помощью метода update():
### Код
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {3, 4, 5, 6, 7}
my_set1.update(my_set2)
print(my_set1)
### Исполнение
{1, 2, 3, 4, 5, 6, 7}
Метод update() может принять любой список:
### Код
my_set = {1, 2, 3, 4, 5}
my_set.update([7, 5, 3, 6, 2])
print(my_set)
### Исполнение
{1, 2, 3, 4, 5, 6, 7}
Как можно заметить из результата выполнения кода, повторяющиеся значения, добавляемые в множество, игнорируются.
Удаление элемента из множества можно выполнить с помощью методов remove() и discard(). При этом, если удалять несуществующий элемент:
- с помощью remove() — то приложение выдаст ошибку,
- с помощью discard() — приложение ничего не удалит, но и ошибки не будет.
### Код
my_set = {1, 2, 3, 4, 5}
my_set.remove(1)
my_set.discard(3)
print(my_set)
### Исполнение
{2, 4, 5}
### Код (удаление несуществующего элемента методом remove())
my_set = {1, 2, 3, 4, 5}
my_set.remove(6)
print(my_set)
print("Конец!") # Сюда выполнение кода не дойдёт
### Исполнение
Traceback (most recent call last):
File "test2.py", line 2, in <module>
my_set.remove(6)
KeyError: 6
### Код (удаление несуществующего элемента методом discard())
my_set = {1, 2, 3, 4, 5}
my_set.discard(6)
print(my_set)
print("Конец!") # Сюда выполнение кода дойдёт
### Исполнение
{1, 2, 3, 4, 5}
Конец!
Некоторые специфичные операции над множествами продемонстрированы на следующем рисунке:

Эти же операции в виде кода:
# Множества
my_set1 = {1, 5, 9, 6, 4}
my_set2 = {6, 5, 1, 8, 2}
# Пересечение
print(my_set1 & my_set2) # {1, 5, 6}
# Объединение
print(my_set1 | my_set2) # {1, 2, 4, 5, 6, 8, 9}
# Симметричная разница
print(my_set1 ^ my_set2) # {2, 4, 8, 9}
# Разница
print(my_set1 - my_set2) # {9, 4}
print(my_set2 - my_set1) # {8, 2}
Проверка на то, входит ли элемент в множество, осуществляется с помощью оператора in:
my_set = {15, 85, 12, 55, 95, 87, 33}
print(95 in my_set) # True
print(11 in my_set) # False
Так как множества должны вычислять хеш-код для каждого элемента, в них могут храниться только хешируемые элементы. В языке Python изменяемые элементы (список, словарь) не являются хешируемыми. То есть, такое множество нельзя создать:
my_set = {[1, 2, 3], ["один", "два"]}
А такое можно:
my_set = {(1, 2, 3), ("один", "два")}
Итог
В этой статье я немного рассказал про множества (set) в Python 3. Дополнительно, про некоторые особенности множеств можете почитать в официальной документации.

Изменить клавиатуру по умолчанию в Android
Добавить ярлыки с Gboard
Вставить ярлык в Gboard
Настройки клавиатуры Microsoft SwiftKey
Создать ярлык с Microsoft SwiftKey Keyboard
Вставка ярлыков в Microsoft SwiftKey Keyboard
Настройки клавиатуры Самсунг
Добавить ярлык на клавиатуру Samsung
Удалить данные просмотра в Chrome Android
Базовый раздел для удаления истории
Расширенный параметр удаления истории в Chrome
Удаление истории поиска Google
Удаление кеша приложений Android
Запустите программу записи экрана в Android 12
Нажмите кнопку записи аудио со стрелкой
Выберите вариант микрофона
Разрешение на доступ для приложения Truecaller
Используйте запись звонков Trucaller
Включить запись звонков Truecaller
Запись звонков Truecaller
Предупреждение об удалении Truecaller в качестве номеронабирателя по умолчанию
Скриншот с кнопками питания и уменьшения громкости
Используйте кнопку питания, чтобы сделать снимок экрана
Используйте переключатель приложений для захвата экрана
Сделать снимок экрана с помощью Google Ассистента
Скриншот с прокруткой для Android
Скриншот с прокруткой в Chrome Android
Сделайте снимок экрана в Android с помощью ScreenMaster