SmartView · Python | Изучение Python
130 subscribers
373 photos
17 links
📖 Обучение языку программирования Python с самого начала: кратко, интересно и понятно!

📚 Мы стараемся преподавать самое важное в Python, чтобы вас не нагружать.

⚡️ Boost канала: https://t.me/boost/SV_Python

🍀 Желаем приятного изучения!
Download Telegram
Подмножества: issubset()

Проверяет, все ли элементы A есть в B:
A = {1, 2}
B = {1, 2, 3}
print(A.issubset(B)) # True
👍5👏1
Надмножества: issuperset()

Проверяет, содержит ли A все элементы B:
A = {1, 2, 3}
B = {1, 2}
print(A.issuperset(B)) # True
👍6
Непересекающиеся множества: isdisjoint()

Проверяет, нет ли общих элементов:
A = {1, 2}
B = {3, 4}
print(A.isdisjoint(B)) # True
👍5👏1
Проверка равенства: == и !=

Множества равны, если содержат одинаковые элементы (порядок не важен):
A = {1, 2, 3}
B = {3, 2, 1}
print(A == B) # True
👍6
Собственные подмножества и надмножества

- Собственное подмножество (<) – A содержится в B, но не равно B.
- Собственное надмножество (>) – A содержит B, но не равно B.

Пример:
A = {1, 2}
B = {1, 2, 3}
print(A < B) # True (A — собственное подмножество B)
👍6
Частичное сравнение: <= и >=

- A <= B → A является подмножеством B (включая равенство).
- A >= B → A является надмножеством B.
👍6
Синтаксис множественных включений

Аналог списковых включений:
squares = {x ** 2 for x in range(5)}  # {0, 1, 4, 9, 16}
👍6
Примеры использования генераторов

Можно создавать множества из генераторов:
even_numbers = {x for x in range(10) if x % 2 == 0}  # {0, 2, 4, 6, 8}
👍7
Фильтрация элементов в генераторах

Можно фильтровать элементы при создании:
words = {"hello", "world", "python"}
filtered = {word for word in words if len(word) > 5} # {'python'}
👍5
Что такое frozenset?

Это неизменяемое множество. Его нельзя изменить после создания.
👍51👀1
Создание и использование frozenset

fs = frozenset([1, 2, 3])
print(fs) # frozenset({1, 2, 3})
👍5
Применение frozenset как ключей словаря

Поскольку frozenset неизменяем, его можно использовать как ключ:
d = {frozenset({1, 2}): "value"}
print(d) # {frozenset({1, 2}): 'value'}
👍5
Методы frozenset

Имеет те же методы, что и set, кроме изменяющих (add, remove и т. д.).
👍5
Попытка добавления изменяемых объектов

Множества не могут содержать изменяемые объекты (списки, словари, другие множества). Но можно использовать frozenset:
valid = { frozenset({1, 2}) }  # OK
👍5
Производительность операций (таблица Big-O)
👍5
Хэширование и уникальность элементов

Множества используют хэши для быстрого поиска. Поэтому:
- Все элементы должны быть хешируемыми (hash(x) должен работать).
- list, dict, set — нехешируемые!
👍5
Поведение различных типов данных в множествах

- int, str, tuple — можно добавлять.
- list, dict, set — нельзя.
👍5
Удаление дубликатов из последовательностей

Простой способ удалить дубли:
numbers = [1, 2, 2, 3, 3]
unique = list(set(numbers)) # [1, 2, 3] (порядок может измениться)
👍5
Проверка на уникальность данных

data = [1, 2, 3, 2]
is_unique = len(data) == len(set(data)) # False (есть дубли)
👍5
Быстрая проверка принадлежности

Множества оптимизированы для x in s (гораздо быстрее, чем в списках!).
🔥4👍2