Is Set Mutable or Immutable Data Type?


Heather Bennett

Is Set Mutable or Immutable Data Type?

When working with data in programming, it is essential to understand whether a particular data type is mutable or immutable. In this article, we will delve into the concept of sets and determine whether they are mutable or immutable.

Understanding Sets

A set is an unordered collection of unique elements in Python. It is defined by enclosing the elements within curly braces ({}) or by using the set() constructor. For example:

<p>my_set = {1, 2, 3}</u>
<p>my_set = set([4, 5, 6])</u>

Mutability in Python

In Python, a mutable data type can be modified after it is created without changing its identity. Conversely, an immutable data type cannot be modified after creation.

Sets are Mutable

Sets in Python are mutable. This means that you can modify a set by adding or removing elements even after it has been created. For example:

<p>my_set = {1, 2}</u>
<p>print(my_set)  # Output: {1, 2, 3}</u>

In the above example, we first create a set with two elements. Then we use the add() method to add the element 3 to the set. Finally, we print the updated set, which now includes the element 3.

Immutable Alternatives to Sets

If you need a collection of elements that cannot be modified, you can use an alternative data type such as frozenset. A frozenset is an immutable version of a set. Once created, it cannot be changed.

Here’s an example:

<p>my_frozenset = frozenset([1, 2, 3])</u>
<p>my_frozenset.add(4)  # Raises AttributeError</u>

In the above example, we create a frozenset with three elements. Then, when we attempt to add an element using the add() method, it raises an AttributeError. This error occurs because frozensets are immutable and do not support modification operations.


Sets in Python are mutable data types. You can modify them by adding or removing elements even after they have been created.

However, if you require an immutable collection of elements, you can use frozensets instead. Understanding the mutability or immutability of different data types is crucial for effective programming and data manipulation.