Set vs FrozenSet in Python

Python offers a variety of built-in data structures, and two of them are Set and FrozenSet. Both Set and FrozenSet are used to store a collection of unique items in Python. However, they differ in their mutability, implementation, and usage. In this article, we will explore the differences between Set and FrozenSet in Python with examples.

Set

A Set is an unordered collection of unique elements in Python. The elements in the Set are enclosed in curly braces ({}) and are separated by commas. The Set data structure is mutable, which means we can add, remove, or modify elements in the Set. The Set data structure is implemented using a hash table, which allows for fast membership testing, insertion, and deletion.

Here is an example of creating a Set in Python:

# Creating a Set
set_example = {1, 2, 3, 4, 5}
print(set_example)  # {1, 2, 3, 4, 5}

FrozenSet

A FrozenSet, on the other hand, is an immutable Set in Python. It means once a FrozenSet is created, we cannot add, remove, or modify elements in it. The elements in the FrozenSet are also enclosed in curly braces ({}) and are separated by commas. The FrozenSet data structure is implemented using a hash table, similar to the Set data structure, which allows for fast membership testing.

Here is an example of creating a FrozenSet in Python:

# Creating a FrozenSet
frozen_set_example = frozenset([1, 2, 3, 4, 5])
print(frozen_set_example)  # frozenset({1, 2, 3, 4, 5})

Differences between Set and FrozenSet

Mutability

The main difference between Set and FrozenSet is their mutability. A Set is mutable, which means we can add, remove, or modify elements in the Set. A FrozenSet is immutable, which means once created, we cannot add, remove, or modify elements in the FrozenSet.

Usage

Sets are used when we need to store and manipulate a collection of unique items. We can perform mathematical set operations like union, intersection, difference, and symmetric difference using Sets. On the other hand, FrozenSets are used when we need to store a collection of unique items that should not be modified. FrozenSets are hashable, which means we can use them as keys in a dictionary.

Implementation

Both Set and FrozenSet are implemented using a hash table, which provides fast membership testing. However, Sets use a mutable hash table, and FrozenSets use an immutable hash table. The hash table implementation of Sets allows for fast addition, removal, or modification of elements, while the hash table implementation of FrozenSets allows for fast membership testing.

Conclusion

In conclusion, both Set and FrozenSet are used to store a collection of unique items in Python. The main difference between them is their mutability, usage, and implementation. Sets are mutable, used for storing and manipulating unique items, and implemented using a mutable hash table. FrozenSets are immutable, used for storing unique items that should not be modified, and implemented using an immutable hash table. Knowing the differences between Set and FrozenSet will help us choose the appropriate data structure based on our requirements.

Leave a Reply