8.1 Krotka set
Kolekcja frozenset
to niezmienny odpowiednik set
. Oferuje wszystkie możliwości zbiorów, ale nie pozwala zmieniać jego elementów po utworzeniu. frozenset
jest przydatny w sytuacjach, gdy trzeba przechowywać unikalne elementy i zapewnić, że zbiór nie zostanie zmieniony.
Tworzenie frozenset
Aby stworzyć frozenset
, można użyć funkcji frozenset()
, przekazując do niej obiekt iterowalny (lista, krotka, string itp.).
Przykłady:
Tworzenie frozenset
z listy
# Tworzenie frozenset z listy
fset1 = frozenset([1, 2, 3, 4])
print(fset1) # Wyjście: frozenset({1, 2, 3, 4})
Tworzenie frozenset
z ciągu znaków
# Tworzenie frozenset z ciągu znaków
fset2 = frozenset("hello")
print(fset2) # Wyjście: frozenset({'h', 'e', 'l', 'o'})
Tworzenie pustego frozenset
# Tworzenie pustego frozenset
fset3 = frozenset()
print(fset3) # Wyjście: frozenset()
8.2 Podstawowe metody frozenset
frozenset
wspiera większość metod dostępnych dla zmiennych zbiorów (set)
, ale ponieważ jest niezmienny, metody, które zmieniają zbiór, są niedostępne.
Przykłady:
Łączenie zbiorów (union)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Łączenie zbiorów (union)
print(fset1 | fset2) # Wyjście: frozenset({1, 2, 3, 4, 5, 6})
print(fset1.union(fset2)) # Wyjście: frozenset({1, 2, 3, 4, 5, 6})
Część wspólna zbiorów (intersection)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Część wspólna zbiorów (intersection)
print(fset1 & fset2) # Wyjście: frozenset({3, 4})
print(fset1.intersection(fset2)) # Wyjście: frozenset({3, 4})
Różnica zbiorów (difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Różnica zbiorów (difference)
print(fset1 - fset2) # Wyjście: frozenset({1, 2})
print(fset1.difference(fset2)) # Wyjście: frozenset({1, 2})
Różnica symetryczna (symmetric difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Różnica symetryczna (symmetric difference)
print(fset1 ^ fset2) # Wyjście: frozenset({1, 2, 5, 6})
print(fset1.symmetric_difference(fset2)) # Wyjście: frozenset({1, 2, 5, 6})
8.3 Zastosowanie frozenset
frozenset
jest przydatny w następujących sytuacjach:
Użycie jako klucz w słownikach:
Ponieważ frozenset
jest niezmienny, można go używać jako klucz w słownikach.
fset1 = frozenset([1, 2, 3])
fset2 = frozenset([3, 4, 5])
d = {fset1: "first", fset2: "second"}
print(d) # Wyjście: {frozenset({1, 2, 3}): 'first', frozenset({3, 4, 5}): 'second'}
Przechowywanie niezmiennych zbiorów:
Jeśli trzeba utworzyć zbiór unikalnych elementów, który nie będzie zmieniany w przyszłości, frozenset
— jest świetnym wyborem.
Bezpieczeństwo danych:
Użycie frozenset
pozwala zagwarantować, że dane nie zostaną przypadkowo zmienione w trakcie działania programu.
GO TO FULL VERSION