Python frozensets

• A frozenset is an unordered collection of unique and hashable objects.
• So, lists and dictionaries cannot be members of a frozenset.
• A tuple can be a member if and only if all its members are immutable.
• A frozenset is immutable and hashable.
• A frozenset has to be created using the `frozenset()` function.

create a frozenset¶

``````students = ["John", "Anji", "Charles"]
students_set = frozenset(students)
print(type(students_set))
# Output: <class 'frozenset'>
print(students_set)
# Output: frozenset({'Anji', 'John', 'Charles'})
``````

elements are unique¶

``````numbers = (1,2,3,4,1,2,6,8,9,10)
unique_numbers = frozenset(numbers)
print(unique_numbers)
# Output: frozenset({1, 2, 3, 4, 6, 8, 9, 10})
``````

convert string to a frozenset¶

``````string = "Python is awesome"
fset = frozenset(string)
print(fset)
# Output: frozenset({'a', 'w', 't', 'o', 'h', 'i', 'e', 'P', ' ', 'n', 's', 'y', 'm'})
``````

find set difference¶

``````mammals = frozenset(["Lion", "Deer", "Bat"])
fliers = frozenset(["Parrot", "Eagle", "Bat"])

diff = mammals - fliers
print(diff)
# Output: frozenset({'Lion', 'Deer'})

print(mammals.difference(fliers))
# Output: frozenset({'Lion', 'Deer'})
``````

find set symmetric difference¶

``````mammals = frozenset(["Lion", "Deer", "Bat"])
fliers = frozenset(["Parrot", "Eagle", "Bat"])

diff = mammals ^ fliers
print(diff)
# Output: frozenset({'Deer', 'Eagle', 'Lion', 'Parrot'})

print(mammals.symmetric_difference(fliers))
# Output: frozenset({'Deer', 'Eagle', 'Lion', 'Parrot'})
``````

find union of sets¶

``````mammals = frozenset(["Lion", "Deer", "Bat"])
fliers = frozenset(["Parrot", "Eagle", "Bat"])

union = mammals | fliers
print(union)
# Output: frozenset({'Lion', 'Deer', 'Bat', 'Eagle', 'Parrot'})

print(mammals.union(fliers))
# Output: frozenset({'Lion', 'Deer', 'Bat', 'Eagle', 'Parrot'})
``````

find intersection of sets¶

``````mammals = frozenset(["Lion", "Deer", "Bat"])
fliers = frozenset(["Parrot", "Eagle", "Bat"])

common = mammals & fliers
print(common)
# Output: frozenset({'Bat'})

print(mammals.intersection(fliers))
# Output: frozenset({'Bat'})
``````

check if sets are disjoint¶

``````mammals = frozenset(["Lion", "Deer"])
fliers = frozenset(["Parrot", "Eagle", "Bat"])

is_disjoint = mammals.isdisjoint(fliers)
print(is_disjoint)
# Output: True
``````

check if set is subset of another set¶

``````s1 = frozenset([1,2,3,4,5,6,7,8])
s2 = frozenset([1,2])

print(s2.issubset(s1))
# Output: True
``````

check if set is superset of another set¶

``````s1 = frozenset([1,2,3,4,5,6,7,8])
s2 = frozenset([1,2])

print(s1.issuperset(s2))
# Output: True
``````

Note: `union`, `intersection`, `difference`, `symmetric_difference`, `issubset`, `issuperset` methods will accept any iterable as an argument.

using `in` and `not in` with fronzensets¶

``````presidents = frozenset([
"Zakir Husain",
"V. V. Giri",
"Fakhruddin Ali Ahmed",
"Neelam Sanjiva Reddy"
])

print("Anji" in presidents)
# Output: False

print("Anji" not in presidents)
# Output: True
``````