Множини. Основні поняття. Створення множини. Операція in. Операції над множинами, які утворюють нову множину
Зміст
- 1. Поняття множини
- 2. Створення об’єкту типу “множина”. Функція set(). Приклади
- 3. Базові операції над множинами. Перелік
- 4. Операції in, not in. Перевірка елементу на входження. Приклад
- 5. Операція –. Різниця множин. Приклад
- 6. Операція |. Об’єднання множин. Приклад
- 7. Операція &. Перетин множин. Приклад
- 8. Операція ^. Симетрична різниця. Приклад
- 9. Приклад застосування множин для фільтрування списків
- Зв’язані теми
Пошук на інших ресурсах:
1. Поняття множини
Мова програмування Python має засоби для роботи з множинами. У Python множина – це невпорядкована колекція елементів, яка має наступні особливості:
- усі елементи множини є унікальні. Іншими словами, у множині не може бути двох однакових елементів;
- елементи множини є незмінюваними об’єктами;
- елементи множини можуть бути різних типів.
У Python множина представлена окремим типом даних. Множини підтримують операції, що існують в теорії множин з курсу математики. Множина може бути пустою (не містити елементів).
Приклади множин у вигляді літералів.
# множина, яка містить три елементи: 'a', 5, 'textbook' {'a', 5, "textbook"} # множина, яка містить числа від 0 до 5 {0,1,2,3,4,5} # пуста множина { }
⇑
2. Створення об’єкту типу “множина”. Функція set(). Приклади
Щоб створити об’єкт типу “множина” можна використати один з наступних способів:
- з допомогою присвоєння цьому об’єкту множини елементів фігурних дужках { };
- з допомогою присвоєння об’єкту деякого результату, що був повернутий функцією set(). Функція set() дозволяє перетворити в множину об’єкти інших типів;
- з допомогою присвоєння об’єкту результату функції frozenset(). Функція frozenset() є конструктором класу frozenset. Ця функція дозволяє отримати незмінну (immutable) множину;
- з допомогою присвоєння об’єкту результату деякої операції над множинами (наприклад, операції & перетину множин);
- з допомогою присвоєння об’єкту результату функції, яка повертає деяку множину.
Приклад.
# Множини # Створення об'єкту типу "множина" # 1. З допомогою фігурних дужок { } x = { 0, 0, 1, 2, 3 } # x = {0, 1, 2, 3} - елементи в множині не повторюються y = { 'a', "textbook", 5 } # y = {'a', 'textbook', 5} z = { True, False, 0.25, 'Hello' } # z = {False, True, 'Hello', 0.25} # 2. З допомогою функції set x = set(['a', 5, "textbook", 5]) # x = {5, 'textbook', 'a'} y = set('Hello!') # y = {'l', 'o', 'e', '!', 'H'} z = set([0,1,2,3,4,5]) # z = {0, 1, 2, 3, 4, 5} # 3. З допомогою деякої операції x = { 1, 2, 3, 4 } & { 3, 2} # x = {2, 3} y = { 1, 2, 3, 4 } - { 1, 4} # y = {2, 3} z = { 'a', 'c', 5 } | { True } # z = {'a', 5, 'c', True} # 4. З допомогою функції frozenset x = frozenset([1, 2, 3, 4]) # x - незмінювана (immutable) множина # 5. З допомогою функції, яка повертає множину x = { 1, 2, 3, 4 } y = { 3, 5, 7 } z = x.union(y) # z = { 1, 2, 3, 4, 5, 7 }
⇑
3. Базові операції над множинами. Перелік
Мова Python підтримує наступні операції над множинами:
- in – перевірка елементу на входження в множину;
- – (мінус) – різниця множин;
- | – об’єднання множин;
- & – перетин множин;
- ^ – симетрична різниця.
⇑
4. Операції in, not in. Перевірка елементу на входження. Приклад
Операція in використовується у випадках, коли потрібно визначити чи входить елемент у множину. Загальна форма операцї наступна:
Item in Set
де
- Item – деякий об’єкт (елемент), який потрібно перевірити в входження в множину Set. Якщо об’єкт Item є в множині Set, то результат операції буде True. В противному випадку результат операції буде False;
- Set – деяка множина.
Як правило, операція in використовується в операторах перевірки умови.
У програмах оператор in можна поєднувати з оператором not. У цьому випадку загальна форма інструкції not in наступна
Item not in Set
Результат операції not in завжди протилежний результату операції in.
Приклад 1.
# Множини # Операція in. Перевірка входження елементу в множину # 1. Застосування in x = { 3, 8, 'a', 'Hello' } # множина елементів a = 'Hello' # елемент if a in x: print('The element is in set') else: print('The element is not in set')
Приклад 2. Поєднання оператора in з логічним оператором not.
# Застосування конструкції not in day = { 'Sun', 'Mon', 'Tue', 'Wed', 'Thi', 'Fri', 'Sat'} # Ввести день з клавіатури inputDay = str(input('Input day of week: ')) # Перевірка if inputDay not in day: print('Wrong day') else: print('OK')
Результат виконання програми
Input day of week: sunday
Wrong day
⇑
5. Операція –. Різниця множин. Приклад
В Python операція різниця множин позначається символом – (мінус). Крім того для визначення різниці множин у Python реалізовано функцію difference().
Загальна форма операції – наступна:
set1 – set2
де
- set1 – множина, від якої віднімаються (видаляються) елементи, що розміщені в множині set2. При відніманні розглядаються тільки ті елементи, які є спільними (однаковими) для двох множин. У результаті створюється нова множина, яка містить елементи множини set1, яких немає в множині set2;
- set2 – множина яка визначає елементи, що потрібно відняти (видалити) з множини set1.
Операція різниці множин може утворювати ланцюги. У цьому випадку загальна форма операції – наступна:
set1 - set2 - set3 - ... - setN
Приклад.
# Множини # Операція -. Різниця множин # Однотипні елементи x = { 1, 2, 3, 5 } y = { 2, 8 } z = x - y # z = {1, 3, 5} v = y - x # v = {8} # Різнотипні елементи x = { 'a', True, 'Text' } y = { 2, 8, 16.23, 'a' } z = x - y # z = {True, 'Text'}
⇑
6. Операція |. Об’єднання множин. Приклад
Об’єднання множин a та b – це утворення такої множини c, елементи якої є в множині a або є в множині b. У мові Python для реалізації об’єднання множин можна використати операцію | або функцію union().
Операція об’єднання множин | має наступну загальну форму
set1 | set2
де
- set1, set2 – деякі множини, які об’єднуються. Результуюча множина містить усі елементи множини set1 та усі елементи множини set2.
Операція об’єднання множин | може утворювати ланцюги як показано нижче
set1 | set2 | set3 | ... | setN
Приклад.
# Множини # Операція |. Об'єднання множин x = { 'a', 5, True } y = { 2, 3.85, False } z = x | y # z = {3.85, True, False, 2, 5, 'a'} v = x | y | { 170 } # v = {3.85, True, False, 2, 5, 'a', 170}
⇑
7. Операція &. Перетин множин. Приклад
Перетин двох множин a, b – це множина c, що містить спільні елементи множин a, b. Кожен елемент множини c розміщується у множині a а також у множині b.
У мові Python для реалізації перетину множин використовується операція & або функція intersection().
Операція перетину множин & має наступну загальну форму
set1 & set2
де
- set1, set2 – множини, для яких потрібно реалізувати так званий “перетин”. У результаті утворюється нова множина, яка містить елементи що входять в обидві множини set1 та set2. Елементи, що входять тільки в одну з множин set1, set2 відсікаються.
Операція перетину множин & може утворювати ланцюги
set1 & set2 & set3 & ... & setN
Приклад.
# Множини # Операція &. Перетин множин # Результат - пуста множина, немає спільних елементів x = { 'a', 5, True } y = { 2, 3.85, False } z = x & y # z = {} - пуста множина # Результат - непуста множина x = { 3, 2.25, True, 'abc' } y = { 2.25, 'abcd', 3, 7, True} z = x & y # z = {True, 2.25, 3}
⇑
8. Операція ^. Симетрична різниця. Приклад
Для отримання симетричної різниці множин у мові Python можна використовувати операцію ^ або функцію symmetric_difference().
Операція симетричної різниці множин ^ є зворотною до операції перетину множин &. У цьому випадку в результуючу множину включаються елементи, які не є спільними.
Загальна форма операції ^ наступна
set1 ^ set2
де
- set1, set2 – множини для яких реалізується симетрична різниця. У результаті утворюється нова множина, яка містить елементи, що не є спільними для множин set1, set2.
Операція ^ може утворювати ланцюги
set1 ^ set2 ^ set3 ^ ... ^ setN
Приклад.
# Множини # Операція ^. Симетрична різниця множин # Результат - пуста множина, немає спільних елементів x = { 1, 3, 5 } y = { 3, 5, 1 } z = x ^ y # z = {} - пуста множина # Значення 3 в множинах є спільне, тому воно не включене в результат x = { 1, 3, 5 } y = { 2, 3, 8 } z = x ^ y # z = {1, 2, 5, 8} - без значення 3 # Значення 'b', 'c' є спільними, тому вони викидаються з результату x = { 'a', 'b', 'c' } y = { 'x', 'b', 'c', 'd', 'e' } z = x ^ y # z = {'e', 'a', 'd', 'x'}
⇑
9. Приклад застосування множин для фільтрування списків
У прикладі визначаються числа, які входять у список. Використовується властивість множини, яка твердить, що у множині елемент не може повторюватись два рази.
# Застосування множин для фільтрування списків # 1. Створити список чисел від 1 до 10 List = [5, 3, 2, 3, 4, 2, 3, 7, 9, 5, 7] # 2. Визначити, які числа від 1 до 10 входять у список List numbers = set(List) # numbers = [2, 3, 4, 5, 7, 9] # 3. Вивести результат print('numbers = ', numbers)
Результат виконання програми
numbers = [2, 3, 4, 5, 7, 9]
⇑
Зв’язані теми
- Операції та функції для визначення надмножин та підмножин. Порівняння множин
- Класи set, frozenset. Функції для роботи з множинами. Приклади
⇑