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 позволяет гарантировать, что данные не будут случайно изменены в процессе выполнения программы.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ