Заморожена множина (англ. “frozen set”) — це просто незмінна версія множини в Python. Хоча елементи звичайної множини можна змінити у будь-який час, елементи замороженої множини залишаються незмінними після створення. Завдяки цьому заморожені множини можуть бути використані як ключі в словнику або як елементи іншої множини. Але як і множини, вони не впорядковані (елемент можна поставити в будь-який індекс).
Синтаксис функції frozenset()
|
1 |
frozenset([iterable]) |
Параметри функції frozenset()
Функція frozenset() приймає один параметр:
iterable — ітерований об’єкт, який містить елементи для ініціалізації замороженої множини.
Ітерований об’єкт може бути множиною, словником, кортежем і т.д.
Значення, яке повертає функція frozenset()
Функція frozenset() повертає незмінюваний об’єкт frozenset, ініціалізований елементами із вказаного ітерованого об’єкта.
Якщо параметр не вказано, функція повертає порожній об’єкт frozenset.
Приклад №1: Робота функції frozenset() в Python
|
1 2 3 4 5 6 7 8 9 |
# Кортеж голосних літер vowels = ('a', 'e', 'i', 'o', 'u') fSet = frozenset(vowels) print('The frozen set is:', fSet) print('The empty frozen set is:', frozenset()) # Заморожені множини - незмінні fSet.add('v') |
Результат:
The frozen set is: frozenset({'a', 'o', 'u', 'i', 'e'})
The empty frozen set is: frozenset()
Traceback (most recent call last):
File "<string>, line 8, in <module>
fSet.add('v')
AttributeError: 'frozenset' object has no attribute 'add'
Приклад №2: Функція frozenset() зі словником
Коли ви використовуєте словник як ітерований об’єкт для замороженої множини, то для створення множини потрібні лише ключі словника.
|
1 2 3 4 5 |
# Випадковий словник person = {"name": "John", "age": 23, "sex": "male"} fSet = frozenset(person) print('The frozen set is:', fSet) |
Результат:
The frozen set is: frozenset({'name', 'sex', 'age'})
Операції над frozenset
Як звичайні множини, незмінна множина виконує різні операції як копіювання, різниця, перетин, симетрична різниця та об’єднання.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Заморожені множини. # Ініціалізуємо A та B A = frozenset([1, 2, 3, 4]) B = frozenset([3, 4, 5, 6]) # Копіюємо заморожену множину C = A.copy() print(C) # Об'єднання print(A.union(B)) # Перетин print(A.intersection(B)) # Різниця print(A.difference(B)) # Симетрична різниця print(A.symmetric_difference(B)) |
Результат:
frozenset({1, 2, 3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({3, 4})
frozenset({1, 2})
frozenset({1, 2, 5, 6})
Подібним чином інші методи множини такі як isdisjoint(), issubset(), issuperset() також доступні:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Заморожені множини. # Ініціалізуємо A, B та C A = frozenset([1, 2, 3, 4]) B = frozenset([3, 4, 5, 6]) C = frozenset([5, 6]) # Метод isdisjoint() print(A.isdisjoint(C)) # Метод issubset() print(C.issubset(B)) # Метод issuperset() print(B.issuperset(C)) |
Результат:
True
True
True

(5 оцінок, середня: 4,20 з 5)