Множини (Set)

Модуль 1: Python Core
Рівень 6 , Лекція 0
Відкрита

1.1 Знайомство з множинами

Визначення множини прийшло в програмування з математики. Множина — це група унікальних елементів. Ця особливість робить множини потужним інструментом в програмуванні, з безліччю унікальних можливостей.

Що таке група унікальних елементів? Уяви собі «Список 10 найпопулярніших імен у країні». Сама суть цього визначення підказує, що кожне ім'я у списку унікальне та не повторюється. Повторюються лише його носії.

Або уяви собі колекцію марок. Ти збираєш по одній марці з кожної країни. Твоя колекція — це множина марок, де кожна марка унікальна, і ти не хочеш, щоб у тебе було дві однакові марки. Ось це і є ідея множини.

Основні характеристики множин

Унікальність

Множина — це група унікальних предметів. Уяви, що у тебе є корзина для фруктів, і ти хочеш покласти в неї яблука, апельсини і банани, але у тебе не може бути двох однакових яблук. Як тільки ти поклав яблуко в корзину, друге таке ж яблуко туди не потрапить.

Неупорядкованість

Множини не дбають про порядок предметів. Це як якщо б ти клав фрукти в корзину, не переймаючись про те, що знаходиться на дні, а що зверху. Головне, що всі фрукти в корзині різні.

Змінюваність

Ти можеш додавати та видаляти предмети з множини. Це як якщо б ти міг у будь-який момент покласти в корзину новий фрукт або забрати той, який тобі більше не потрібен.

1.2 Операції над множинами

Над множинами, як над великими групами елементів, можна проводити різні операції. Ось приклад 4 найпоширеніших:

  • Об'єднання (Union): Результат об'єднання двох множин включає всі унікальні елементи з обох множин.
  • Перетин (Intersection): Результат перетину двох множин включає лише ті елементи, які присутні в обох множинах.
  • Різниця (Difference): Результат різниці двох множин включає елементи, які присутні в першій множині, але відсутні в другій.
  • Симетрична різниця (Symmetric Difference): Результат симетричної різниці двох множин включає елементи, які присутні в одному з множин, але відсутні в обох одночасно.

Ось гарна картинка, яка допоможе запам'ятати суть операцій:

Об'єднання (Union):

Результат об'єднання двох множин А і B включає всі унікальні елементи з обох множин.

Перетин (Intersection):

Результат перетину двох множин включає лише ті елементи, які присутні в обох множинах.

Різниця (Difference):

Результат різниці двох множин включає елементи, які присутні в першій множині, але відсутні в другій.

Симетрична різниця (Symmetric Difference):

Результат симетричної різниці двох множин включає елементи, які присутні або в одному, або в іншому множині, але відсутні в обох одночасно.

1.3 Особливості множин

Множини знамениті не лише своїми властивостями, але й набором специфічних операцій над ними.

Унікальні колекції

Уяви, що ти збираєш автографи знаменитостей. Ти хочеш, щоб у твоїй колекції кожен автограф був унікальним. Це означає, що якщо у тебе вже є автограф улюбленого актора, ти не будеш збирати другий такий же. Твоя колекція автографів — це множина унікальних автографів.

Видалення дублікатів

Припустимо, у тебе є список гостей на вечірку, але ти випадково записав деяких людей двічі. Щоб переконатися, що кожен гість запрошений лише один раз, ти можеш створити множину гостей. У цій множині автоматично залишаться лише унікальні імена, і дублікати зникнуть.

Перевірка на наявність

Уяви, що ти граєш у гру, де потрібно збирати різні види скарбів. У кожному сундуку може бути одне з множини скарбів. Якщо ти хочеш дізнатися, чи знайшов ти вже певний скарб, ти просто перевіряєш, чи є він у твоїй множині скарбів.

Об'єднання груп

Уяви, що у тебе є два списки друзів: один зі школи, інший зі спортклубу. Якщо ти хочеш дізнатися, з скількома унікальними людьми ти знайомий, ти можеш об'єднати ці два списки в одну множину. Таким чином, у тебе буде список всіх унікальних друзів без повторень.

Коментарі (2)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
negoda Рівень 31
18 липня 2025
Для тех кто не понял сути Symmetric Difference, и его отличия от Difference : Представте что у вас есть два множества : a = {1, 2, 3, 4} b = {3, 4, 5, 6} result = a.symmetric_difference(b) print(result) #На выводе : {1, 2, 5, 6} Если вызвать метод Symmetric Difference, то на выводе мы получим {1, 2, 5, 6}, то-есть те элементы, которые уникальны для каждого из двух множеств (иными словами - не общих элементов для двух множеств). В то же время Difference дает нам немного другой результат : a = {1, 2, 3, 4} b = {3, 4, 5, 6} print(a.difference(b)) #На выводе : {1, 2} print(b.difference(a)) #На выводе : {5, 6} Метод Difference вызывается по отношению к одному из множеств, то-есть вызывая его мы получаем в результат только те элементы, которые есть в а, но которых нету в b. В то же время обратную разницу (b к a), мы получим только если вызовем метод обратным способом. Грубо говоря, метод Symmetric Difference, это тот же метод Difference, но который показывает нам взаимную разницу сразу двух множеств по отношению к друг-другу.
3 грудня 2025
Спасибо! Очень информативно и понятно.