Skip to content

Adding and Removing Elements from Sets in Python

Updated: at 04:45 AM

Sets are an important built-in data type in Python that can be used to store unique and unordered collection of elements. Unlike lists or tuples, sets do not allow duplicate elements and are unindexed. Sets support various methods and operators that allow you to easily add, remove, and manipulate elements.

In this comprehensive guide, we will explore the different ways to add and remove elements from sets in Python. We will cover the following topics in detail with example code snippets:

Table of Contents

Open Table of Contents

Creating Sets in Python

Sets can be created in Python by passing a sequence of elements (list, tuple, string etc.) to the set() constructor. The sequence elements will be added to the set. Duplicate elements are automatically removed.

# Creating a set from a list
my_set = set([1, 2, 3, 4])

# Creating a set from a tuple
my_set = set((1, 2, 3, 2))

print(my_set)
# Output: {1, 2, 3}

We can also create empty sets using the set() constructor without any arguments.

empty_set = set()

Adding Elements to a Set

There are a couple of methods available in Python to add elements to an existing set.

Using .add()

We can add a single element to a set using the .add() method.

numbers = {1, 2, 3}
numbers.add(4)

print(numbers)
# Output: {1, 2, 3, 4}

If the element already exists in the set, .add() does not add it again.

numbers.add(3)

print(numbers)
# Output: {1, 2, 3, 4}

Using .update()

To add multiple elements to a set at once, we can use the .update() method.

The .update() method can take other sets, lists, tuples or any other iterable objects as input. All the elements from the iterable will be added to the set.

numbers = {1, 2, 3}

numbers.update([3, 4, 5, 6])

print(numbers)
# Output: {1, 2, 3, 4, 5, 6}

We can also pass multiple iterable objects to .update().

numbers.update([7, 8], (9, 10, 11))

print(numbers)
# Output: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

Removing Elements from a Set

Sets provide several methods to remove elements from them:

Using .remove()

The .remove() method removes the specified element from the set.

If the element does not exist, it raises a KeyError.

numbers = {1, 2, 3, 4}
numbers.remove(3)

print(numbers)
# Output: {1, 2, 4}

numbers.remove(5)
# KeyError: 5

Using .discard()

The .discard() method also removes the specified element from the set. However, if the element does not exist, it does not raise any error.

numbers = {1, 2, 3, 4}
numbers.discard(3)

print(numbers)
# Output: {1, 2, 4}

numbers.discard(5) # No error
print(numbers)
# Output: {1, 2, 4}

Using .pop()

The .pop() method removes and returns an arbitrary element from the set. Set elements are unordered, so we cannot predict which element will be popped.

numbers = {1, 2, 3, 4}

popped = numbers.pop()

print(popped)
# Output: 1

print(numbers)
# Output: {2, 3, 4}

If the set is empty, calling .pop() will raise a KeyError.

empty_set = set()
empty_set.pop()
# KeyError: 'pop from an empty set'

Set Union

The union of two sets A and B is a new set containing all the distinct elements from both the sets.

In Python, we can use the | operator to compute set union.

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

C = A | B

print(C)
# Output: {1, 2, 3, 4, 5, 6}

The set.union() method can also be used to compute set union.

C = A.union(B)

Set Intersection

The intersection of two sets A and B is a new set containing only the common elements present in both sets.

In Python, we can use the & operator to compute the set intersection.

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

C = A & B

print(C)
# Output: {3, 4}

The set.intersection() method can also be used.

C = A.intersection(B)

Set Difference

The difference of two sets A and B is a new set containing only elements that are in A but not in B.

In Python, we can use the - operator to compute set difference.

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

C = A - B

print(C)
# Output: {1, 2}

The set.difference() method can also be used.

C = A.difference(B)

Set Symmetric Difference

The symmetric difference of sets A and B is a set containing only elements that are in either A or B but not in their intersection.

In Python, we can use the ^ operator to compute the symmetric difference.

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

C = A ^ B

print(C)
# Output: {1, 2, 5, 6}

The set.symmetric_difference() method can also be used.

C = A.symmetric_difference(B)

Clearing All Elements

To remove all elements from a set at once, we can use the .clear() method.

numbers = {1, 2, 3, 4}

numbers.clear()

print(numbers)
# Output: set()

Deleting a Set

We can completely delete a set by using the del keyword.

numbers = {1, 2, 3, 4}

del numbers

print(numbers)
# NameError: name 'numbers' is not defined

Set Membership Tests

We can check if an element exists in a set or not using the in and not in operators.

numbers = {1, 2, 3, 4}

print(3 in numbers)
# True

print(5 not in numbers)
# True

Built-in Set Functions

Python has some built-in functions that can be used to manipulate sets:

Let’s look at some examples:

numbers = {5, 3, 8, 1}

print(len(numbers)) # 4

print(min(numbers)) # 1

print(max(numbers)) # 8

print(sorted(numbers)) # [1, 3, 5, 8]

print(sum(numbers)) # 17

print(any({0, False, None})) # False

print(all({1, True, 'hello'})) # True

These built-in functions allow us to easily perform common operations on sets without writing complex loops and logic.

Summary

To summarize, here are some of the key things we learned about adding and removing elements from sets in Python:

Sets are a very useful data structure in Python. Mastering methods to manipulate set elements is key to writing efficient Python code for problems involving unique data.

Conclusion

In this comprehensive guide, we explored various ways to add and remove elements from sets in Python. We looked at practical example codes for methods like .add(), .update(), .remove(), .discard(), .pop() among others. We also covered set operations like union, intersection, difference and symmetric difference using operators. Finally, we saw some built-in functions for common tasks on sets.

After reading this guide, you should have a good grasp of manipulating set elements in Python. Sets are extensively used in domains like data science, algorithms, machine learning and others where dealing with unique data is common. I hope you found this guide useful. Please share any other tips or tricks for working with Python sets in the comments below!