8.1 set-кортеж
Колекція frozenset — це незмінюваний аналог set. Вона надає всі можливості множини, але не дозволяє змінювати її елементи після створення. frozenset корисний у ситуаціях, коли потрібно зберігати унікальні елементи і гарантувати, що множина не буде змінена.
Створення frozenset
Для створення frozenset можна використовувати функцію frozenset(), передавши їй ітеруємий об'єкт (список, кортеж, рядок і т.д.).
Приклади:
Створення frozenset з списку
# Створення frozenset з списку
fset1 = frozenset([1, 2, 3, 4])
print(fset1) # Вивід: frozenset({1, 2, 3, 4})
Створення frozenset з рядка
# Створення frozenset з рядка
fset2 = frozenset("hello")
print(fset2) # Вивід: frozenset({'h', 'e', 'l', 'o'})
Створення пустого frozenset
# Створення пустого frozenset
fset3 = frozenset()
print(fset3) # Вивід: frozenset()
8.2 Основні методи frozenset
frozenset підтримує більшість методів, доступних для змінюваних множин (set), але оскільки він незмінюваний, методи, що змінюють множину, недоступні.
Приклади:
Об'єднання множин (union)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Об'єднання множин (union)
print(fset1 | fset2) # Вивід: frozenset({1, 2, 3, 4, 5, 6})
print(fset1.union(fset2)) # Вивід: frozenset({1, 2, 3, 4, 5, 6})
Перетинання множин (intersection)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Перетинання множин (intersection)
print(fset1 & fset2) # Вивід: frozenset({3, 4})
print(fset1.intersection(fset2)) # Вивід: frozenset({3, 4})
Різниця множин (difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Різниця множин (difference)
print(fset1 - fset2) # Вивід: frozenset({1, 2})
print(fset1.difference(fset2)) # Вивід: frozenset({1, 2})
Симетрична різниця (symmetric difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Симетрична різниця (symmetric difference)
print(fset1 ^ fset2) # Вивід: frozenset({1, 2, 5, 6})
print(fset1.symmetric_difference(fset2)) # Вивід: frozenset({1, 2, 5, 6})
8.3 Застосування frozenset
frozenset корисний у таких ситуаціях:
Використання як ключ у словниках:
Оскільки frozenset незмінюваний, його можна використовувати як ключ у словниках.
fset1 = frozenset([1, 2, 3])
fset2 = frozenset([3, 4, 5])
d = {fset1: "first", fset2: "second"}
print(d) # Вивід: {frozenset({1, 2, 3}): 'first', frozenset({3, 4, 5}): 'second'}
Зберігання незмінюваних множин:
Якщо потрібно створити множину унікальних елементів, яка не буде змінена надалі, frozenset — чудовий вибір.
Безпека даних:
Використання frozenset дозволяє гарантувати, що дані не будуть випадково змінені у процесі виконання програми.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ