# Set.discard(), .remove() & .pop() in Python | HackerRank Solution

Hello coders, today we are going to solve Set.discard(), .remove() & .pop() HackerRank Solution in Python.

Contents

## Objective

.remove(x)

This operation removes element x from the set.
If element x does not exist, it raises a `KeyError`.
The .remove(x) operation returns `None`.

Example

``````>>> s = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> s.remove(5)
>>> print s
set([1, 2, 3, 4, 6, 7, 8, 9])
>>> print s.remove(4)
None
>>> print s
set([1, 2, 3, 6, 7, 8, 9])
>>> s.remove(0)
KeyError: 0``````

This operation also removes element x from the set.
If element x does not exist, it does not raise a `KeyError`.
The .discard(x) operation returns `None`.

Example

``````>>> s = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> print s
set([1, 2, 3, 4, 6, 7, 8, 9])
None
>>> print s
set([1, 2, 3, 6, 7, 8, 9])
>>> print s
set([1, 2, 3, 6, 7, 8, 9])``````

.pop()

This operation removes and return an arbitrary element from the set.
If there are no elements to remove, it raises a `KeyError`.

Example

``````>>> s = set()
>>> print s.pop()
1
>>> print s
set([])
>>> print s.pop()
KeyError: pop from an empty set``````

You have a non-empty set s, and you have to execute N commands given in N lines.

The commands will be pop, remove and discard.

## Input Format

The first line contains integer n, the number of elements in the set s.
The second line contains n space separated elements of set s. All of the elements are non-negative integers, less than or equal to 9.
The third line contains integer N, the number of commands.
The next N lines contains either pop, remove and/or discard commands followed by their associated value.

• 0 < n <20
• 0 < N < 20

## Output Format

Print the sum of the elements of set s on a single line.

Sample Input

``````9
1 2 3 4 5 6 7 8 9
10
pop
remove 9
remove 7
pop
remove 5
pop

Sample Output

``4``

Explanation

After completing these 10 operations on the set, we get set(|4|). Hence, the sum is 4.

Note: Convert the elements of set s to integers while you are assigning them. To ensure the proper input of the set, we have added the first two lines of code to the editor.

## Solution – Set.discard(), .remove() & .pop() in Python

```n = int(input())
s = set(map(int, input().split())) # Set of n elements

for i in range(int(input())): # Iterate in range of the input num
s1 = input().split()
if s1 == 'pop':
s.pop()
elif s1 == 'remove':
s.remove(int(s1))