Множества и их методы
1. Что такое множества
Множество (
set) — это неупорядоченная коллекция уникальных элементов.frozenset — неизменяемое множество.
Элементы множества должны быть хешируемыми (числа, строки, кортежи).
s = {1, 2, 3, 3} # дубликаты удаляются автоматически
print(s) # {1, 2, 3}
fs = frozenset([1, 2, 3])2. Основные методы множеств
add(elem)
Добавляет элемент в set
remove(elem)
Удаляет элемент, если нет — KeyError
discard(elem)
Удаляет элемент, если есть, иначе ничего не делает
pop()
Удаляет и возвращает случайный элемент
clear()
Очищает множество
copy()
Возвращает поверхностную копию
union() или |
|
intersection() или &
Пересечение множеств
difference() или -
Разность множеств
symmetric_difference() или ^
Симметричная разность (элементы, которые есть в одном, но не в обоих)
issubset()
Проверка, является ли множество подмножеством другого
issuperset()
Проверка, является ли множество надмножеством другого
3. Примеры использования
a = {1, 2, 3}
b = {3, 4, 5}
# Добавление
a.add(10)
# Удаление
a.discard(2)
# a.remove(100) # KeyError, если элемента нет
# Операции над множествами
print(a | b) # {1, 3, 4, 5, 10} - объединение
print(a & b) # {3} - пересечение
print(a - b) # {1, 10} - разность
print(a ^ b) # {1, 4, 5, 10} - симметричная разность
# Проверка подмножества
print({1,3}.issubset(a)) # True4. Применение в автотестах
Проверка уникальности элементов
ids = [1, 2, 3, 3, 4]
assert len(ids) != len(set(ids)) # есть дубликатыСравнение множеств данных из API
expected_fields = {"id", "name", "email"}
response_fields = set(response.json().keys())
assert expected_fields.issubset(response_fields)Фильтрация и пересечение данных
actual_users = {"Alice", "Bob", "Carol"}
active_users = {"Bob", "Carol"}
assert actual_users & active_users == {"Bob", "Carol"}💡 Вывод:
set= изменяемое множество уникальных элементов.frozenset= неизменяемое множество.Методы множества удобны для объединения, пересечения, проверки уникальности и сравнения данных, что очень полезно в автотестах.
Last updated
Was this helpful?