Skip to main content

Python frozenset() Function

The frozenset() function returns an immutable frozenset object, i.e. an immutable version of a Python Set.

note

Frozen sets can be used as keys in Dictionary or as elements of another set. But like Sets, a Frozen Set is not ordered (i.e. the elements can be set at any index).

Syntax

frozenset(iterable)

frozenset() Parameters

Python frozenset() function parameters:

ParameterConditionDescription
iterableOptionalAn iterable object which contains elements to initialize the frozenset with, like Set, Dictionary, Tuple, etc.

frozenset() Return Value

Python frozenset() function returns an immutable frozenset initialized with elements from the given iterable.

note

If no parameters are passed, it returns an empty frozenset.

Examples

Example 1: create a frozenset from a tuple with frozenset() function

# tuple of vowels
vowels = ('a', 'e', 'i', 'o', 'u')

fSet = frozenset(vowels)
print('The frozen set is:', fSet)
print('The empty frozen set is:', frozenset())

# Frozensets are immutable, so
# attempting to add to a frozenset raises an AttributeError
try:
fSet.add('v')
except AttributeError as e:
print(e)

output

The frozen set is: frozenset({'o', 'a', 'u', 'e', 'i'})
The empty frozen set is: frozenset()
'frozenset' object has no attribute 'add'

Example 2:

When you use a dictionary as an iterable for a frozen set, it only takes keys of the dictionary to create the set.

# random dictionary
person = {"name": "Tom", "age": 25, "sex": "male"}

my_frozen_set = frozenset(person)
print('The frozen set is:', my_frozen_set)

output

The frozen set is: frozenset({'age', 'name', 'sex'})

Example 3: check membership in a frozenset

animals = frozenset(["cat", "dog", "lion"])
print("cat" in animals) # Output: True
print("elephant" in animals) # Output: False

output

True
False

Example 4: create a frozenset from a list

words = ["Tutorial", "Reference", "Tutorial", "site"]
fnum = frozenset(words)
print("frozenset Object is : ", fnum)

output

frozenset Object is :  frozenset({'site', 'Reference', 'Tutorial'})

Example 5: create a frozenset for dictionary keys

# frozen set as a key in a dictionary
my_dict = {frozenset(['a', 'b']): 'value'}
print(my_dict[frozenset(['a', 'b'])]) # Output: 'value'

output

value

Example 6: error handling with frozensets

favourite_lang = ["Java", "C++", "Python"]
fset_subject = frozenset(favourite_lang)

# This line will raise an error because frozensets are immutable
try:
fset_subject[1] = "HTML"
except TypeError as e:
print(e)

output

TypeError: 'frozenset' object does not support item assignment

Frozenset Operations

Just as normal Sets, frozensets can also perform different operations like copy, difference, intersection, symmetric_difference, and union.

# Initialize Frozensets A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

# copying a frozenset
C = A.copy() # Output: frozenset({1, 2, 3, 4})
print(C)

# union
print(A.union(B)) # Output: frozenset({1, 2, 3, 4, 5, 6})

# intersection
print(A.intersection(B)) # Output: frozenset({3, 4})

# difference
print(A.difference(B)) # Output: frozenset({1, 2})

# symmetric_difference
print(A.symmetric_difference(B)) # Output: frozenset({1, 2, 5, 6})

output

frozenset({1, 2, 3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({3, 4})
frozenset({1, 2})
frozenset({1, 2, 5, 6})

Similarly, other set methods like isdisjoint, issubset, and issuperset are also available.

# initialize Frozensets A, B and C
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])
C = frozenset([5, 6])

# isdisjoint() method
print(A.isdisjoint(C)) # Output: True

# issubset() method
print(C.issubset(B)) # Output: True

# issuperset() method
print(B.issuperset(C)) # Output: True

output

True
True
True