Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | remove() and discard() in Sets

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 21 Mar, 2023
Improve Article
Save Article

In this article, we will see how to remove an element in a set, using the discard() and remove() method. We will also learn the difference between the two methods, although both of them produce the same results. Examples:

Input : set = ([10, 20, 26, 41, 54, 20])
Output : {41, 10, 26, 54}

Input : set = (["ram", "aakash", "kaushik", "anand", "prashant"])
Output : {'ram', 'prashant', 'kaushik', 'anand'}

Method 1: Use of discard() method

The built-in method, discard() in Python, removes the element from the set only if the element is present in the set. If the element is not present in the set, then no error or exception is raised and the original set is printed. If the element is present in the set: 

Python3




# Python program to remove random elements of choice
# Function to remove elements using discard()
def Remove(sets):
    sets.discard(20)
    print (sets)
     
# Driver Code
sets = set([10, 20, 26, 41, 54, 20])
Remove(sets)

Output:

{41, 10, 26, 54}

The time complexity of this program is O(1) because the discard() method in Python’s built-in set class has a constant time complexity. 

The auxiliary space complexity of this program is also O(1) because it only uses a single set object, sets, and a few local variables to execute.

If the element is not present in the set: 

Python3




# Python program to remove random elements of choice
# Function to remove elements using discard()
def Remove(sets):
    sets.discard(21)
    print (sets)
     
# Driver Code
sets = set([10, 20, 26, 41, 54, 20])
Remove(sets)

Output:

{41, 10, 26, 20, 54}

The time complexity of this program is O(1) since the discard() method of set in Python has an average time complexity of O(1).

The auxiliary space used by this program is also O(1) because it only uses a constant amount of extra space to hold the input set and a constant value passed to the discard() method.

 

Method 2: Use of remove() method

The built-in method, remove() in Python, removes the element from the set only if the element is present in the set, just as the discard() method does but If the element is not present in the set, then an error or exception is raised. If the element is present in the set: 

Python3




# Python program to remove random elements of choice
# Function to remove elements using remove()
def Remove(sets):
    sets.remove("aakash")
    print (sets)
     
# Driver Code
sets = set(["ram", "aakash", "kaushik", "anand", "prashant"])
Remove(sets)

Output:

{'ram', 'anand', 'prashant', 'kaushik'}

Time complexity: O(1) for the removal operation, O(n) for printing the resulting set where n is the number of remaining elements in the set.
Auxiliary space: O(1) since the function only modifies the given set in place and does not create any additional data structures.

If the element is not present in the set: 

Python3




# Python program to remove random elements of choice
# Function to remove elements using remove()
def Remove(sets):
    sets.remove("gaurav")
    print (sets)
     
# Driver Code
sets = set(["ram", "aakash", "kaushik", "anand", "prashant"])
Remove(sets)

Output:

No Output

Error:

Traceback (most recent call last):
  File "/home/bf95b32da22ada77d72062a73d3e0980.py", line 9, in 
    Remove(sets)
  File "/home/bf95b32da22ada77d72062a73d3e0980.py", line 4, in Remove
    sets.remove("gaurav")
KeyError: 'gaurav'

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!