0Pricing
Python Academy · Урок

Множества и операции над ними

Создавайте множества и выполняйте объединение, пересечение и разность.

«Множества и операции над ними» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

Множества — это неупорядоченные коллекции уникальных хешируемых элементов. Они оптимизированы для проверки принадлежности и математических операций над множествами.

Создание множества

s = {1, 2, 3} или s = set([1, 2, 2, 3]) — дубликаты удаляются автоматически. {} создаёт пустой DICT, а не множество.
s = {1, 2, 2, 3}
print(s)  # {1, 2, 3}
empty = set()
print(type(empty))

add() и discard()

s.add(x) добавляет элемент. s.discard(x) молча удаляет его (если элемента нет, ошибка не возникает). s.remove(x) вызывает KeyError, если элемента нет.
s = {1, 2, 3}
s.add(4)
s.discard(9)  # safe
print(s)

Проверка принадлежности

Для множеств x in s имеет сложность O(1), а для списков — O(n). Всегда предпочитайте множество, если Вам нужна только быстрая проверка принадлежности.
s = {1, 2, 3}
print(2 in s)
print(9 in s)

Объединение |

s1 | s2 возвращает элементы, входящие хотя бы в одно из множеств. s1.union(s2) — эквивалентная запись.
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b)

Пересечение &

s1 & s2 возвращает элементы, входящие в оба множества. s1.intersection(s2) — эквивалентная запись.
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b)

Разность -

s1 - s2 возвращает элементы, входящие в s1, но не в s2. s1.difference(s2) — эквивалентная запись.
a = {1, 2, 3}
b = {2, 3, 4}
print(a - b)

Симметрическая разность ^

s1 ^ s2 возвращает элементы, входящие ровно в одно из множеств. Это полезно для поиска различий между двумя множествами.
a = {1, 2, 3}
b = {2, 3, 4}
print(a ^ b)

Подмножество и надмножество

s1 <= s2 проверяет, является ли s1 подмножеством s2. s1 >= s2 проверяет, является ли s1 надмножеством. s1 < s2 проверяет, является ли s1 собственным подмножеством.
a = {1, 2}
b = {1, 2, 3}
print(a <= b)
print(b >= a)

frozenset

frozenset — это неизменяемое множество, которое можно использовать как ключ словаря или как элемент другого множества.
fs = frozenset([1, 2, 3])
d = {fs: 'value'}
print(d[fs])

Выражения-генераторы множеств

{x*2 for x in range(5)} создаёт множество с помощью синтаксиса выражения-генератора. Дубликаты автоматически удаляются.
evens = {x*2 for x in range(5)}
print(evens)

Быстрая проверка

Какова временная сложность операции x in s для множества Python s?

Итоги

Множества: неупорядоченные, уникальные, с проверкой принадлежности O(1). Операции: | (объединение), & (пересечение), - (разность), ^ (симметрическая разность). Используйте frozenset для неизменяемых множеств.

Продолжить обучение

Отличная работа! Перейдите к следующему уроку, чтобы продолжить развивать свои навыки.

Часто задаваемые вопросы

Урок «Множества и операции над ними» бесплатный?

Да — полный текст урока «Множества и операции над ними» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Множества и операции над ними»?

Создавайте множества и выполняйте объединение, пересечение и разность. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Множества и операции над ними»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы словарей
  2. Методы словарей
  3. Множества и операции над ними
  4. Генераторы словарей
← Назад к Python Academy