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

Створення множини в Python
fruit_set = {"apple", "banana", "cherry"}
print(fruit_set) # Вивід: {"banana", "cherry", "apple"}
list_to_set = set([1, 2, 3, 4, 4, 5])
print(list_to_set) # Вивід: {1, 2, 3, 4, 5}
string_to_set = set("hello")
print(string_to_set) # Вивід: {"h", "e", "l", "o"}
tuple_to_set = set((1, 2, 3, 4, 5))
print(tuple_to_set) # Вивід: {1, 2, 3, 4, 5}
original_set = {"apple", "banana", "cherry"}
new_set = set(original_set)
print(new_set) # Вивід: {"banana", "cherry", "apple"}
empty_set = set()
print(empty_set) # Вивід: set()Список методів
| Метод | Опис |
|---|---|
| add() | Додає елемент у множину |
| remove() | Видаляє елемент з множини, викликає помилку якщо елемента немає |
| discard() | Видаляє елемент з множини, помилка не виникає якщо елемента немає |
| pop() | Видаляє і повертає випадковий елемент, викликає помилку якщо множина порожня |
| clear() | Видаляє всі елементи з множини |
| union() | Повертає об'єднання множин |
| intersection() | Повертає перетин множин |
| difference() | Повертає різницю множин |
| symmetric_difference() | Повертає симетричну різницю множин |
| update() | Додає елементи з іншої множини або ітерованого об'єкта в поточну множину |
Додавання елемента
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Вивід: {1, 2, 3, 4}Додавання кількох елементів
my_set = {1, 2, 3}
my_set.update([4, 5, 6])
print(my_set) # Вивід: {1, 2, 3, 4, 5, 6}Отримання підмножини за правилом
Використання циклу for
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
for x in my_set:
if x % 2 == 0:
even_set.add(x)
print(even_set) # Вивід: {2, 4, 6, 8, 10}Використання функції filter()
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set(filter(lambda x: x % 2 == 0, my_set))
print(even_set) # Вивід: {2, 4, 6, 8, 10}Використання генераторів множин
{вираз for змінна in послідовність}
Де:
- змінна — ідентифікатор деякої змінної,
- послідовність — послідовність значень, які приймає дана змінна (це може бути список, рядок або об'єкт, отриманий за допомогою функції range),
- вираз — деякий вираз, як правило, залежний від використаної в генераторі змінної, яким будуть заповнені елементи списку.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = {x for x in my_set if x % 2 == 0}
print(even_set) # Вивід: {2, 4, 6, 8, 10}
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, "apple", "banana"}
even_set = {x for x in my_set if type(x) == str}
print(even_set) # Вивід: {"apple", "banana"}Перевірка наявності елемента
my_set = {1, 2, 3, 4, 5}
print(3 in my_set) # Вивід: True
print(6 in my_set) # Вивід: False
print(6 not in my_set) # Вивід: True
print(3 not in my_set) # Вивід: FalseПеревірка вкладеності множин
Використання оператора <=
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a <= set_b) # Вивід: True
print(set_b <= set_a) # Вивід: FalseВикористання методу issubset()
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a.issubset(set_b)) # Вивід: True
print(set_b.issubset(set_a)) # Вивід: FalseПеревірка на надмножину
Використання оператора >=
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a >= set_b) # Вивід: True
print(set_b >= set_a) # Вивід: FalseВикористання методу issuperset()
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a.issuperset(set_b)) # Вивід: True
print(set_b.issuperset(set_a)) # Вивід: FalseВидалення елементів
Метод remove()
my_set = {1, 2, 3, 4, 5}
my_set.remove(3)
print(my_set) # Вивід: {1, 2, 4, 5}
# Якщо елементу немає в множині, виникає помилка
my_set.remove(6) # KeyError: 6Метод discard()
my_set = {1, 2, 3, 4, 5}
my_set.discard(3)
print(my_set) # Вивід: {1, 2, 4, 5}
# Якщо елементу немає в множині, помилки не буде
my_set.discard(6)
print(my_set) # Вивід: {1, 2, 4, 5}Метод pop()
my_set = {1, 2, 3, 4, 5}
removed_element = my_set.pop()
print(removed_element) # Вивід: Один з елементів множини, наприклад, 1
print(my_set) # Вивід: Залишилися елементи множини, наприклад, {2, 3, 4, 5}
# Якщо множина порожня, виникає помилка
empty_set = set()
empty_set.pop() # KeyError: 'pop from an empty set'Метод clear()
my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set) # Вивід: set()Таблиця операторів і методів
| Оператор | Метод | Опис |
|---|---|---|
| | | union() | Повертає об'єднання двох множин. |
| & | intersection() | Повертає перетин множин (тільки спільні елементи). |
| - | difference() | Повертає різницю множин (елементи, які є тільки в першій множині). |
| ^ | symmetric_difference() | Повертає симетричну різницю множин (елементи, які є в одній з множин, але не в обох). |
| <= | issubset() | Перевіряє, чи є одна множина підмножиною іншої. |
| < | issubset() | Перевіряє, чи є одна множина власною підмножиною іншої (строге підмножина). |
| >= | issuperset() | Перевіряє, чи є одна множина надмножиною іншої. |
| > | issuperset() | Перевіряє, чи є одна множина власною надмножиною іншої (строге надмножина). |
| == | __eq__() | Перевіряє, чи рівні множини (містять однакові елементи). |
| != | __ne__() | Перевіряє, чи не рівні множини (містять різні елементи). |
2015-2026 © SumyNikNet