Sets in Python are mutable. You can add and remove elements from them using the add
, discard
and remove
methods:
s = set()
s.add(1)
s.add(2)
s.add(2)
s # {1, 2}
s.discard(1)
s # {2}
s.discard(1)
s # {2}
s.remove(1) # KeyError: 1
When reading the code in this example, you may have noticed that adding extra elements with add
and discarding non-existent ones with discard
does not lead to an error. Sets are so patient. However, calling the remove
method with a non-existent element results in an error.
Copying and clearing sets
Since sets are changeable, it often becomes necessary to make a copy before changing the original. They are like dictionaries, so they do not support obtaining a slice. We have to use the copy
method to copy, which creates a surface copy of the set:
s1 = {1, 2, 3}
s2 = s1.copy()
s1 is s2 # False
s1 == s2 # True
s2.add(4)
s1 == s2 # False
s2 # {1, 2, 3, 4}
To clear the set without creating it again, you can use the clear
method:
s = set("foobar")
s # {'f', 'a', 'r', 'o', 'b'}
s.clear()
s # set()
Are there any more questions? Ask them in the Discussion section.
The Hexlet support team or other students will answer you.
For full access to the course you need a professional subscription.
A professional subscription will give you full access to all Hexlet courses, projects and lifetime access to the theory of lessons learned. You can cancel your subscription at any time.