Множини (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