A set is an unordered collection with no duplicate elements.
A set is mutable data type
The
elements of set should be hashable type.
Set objects support mathematical operations like
union, intersection, difference, and symmetric difference.
To create a set object we need to use curly braces {} or the
set() function.
Comma separated values within curly braces creates
a set.
To create using set() we need to pass an iterable (like list, tuple or
dictionary)
Example:
myset = {"pythoneasy", 2016, "english"}
print(myset) # prints {2016, 'pythoneasy', 'english'}
myset2 = set(["pythoneasy", 2016, "english"]) # A list passed to set()
print(myset2) # prints {2016, 'pythoneasy', 'english'}
print(type(myset2)) # <class 'set'>
More Examples
Set only can have hasable type elements (immutable type and
userdefined class objects)
myset = {"pythoneasy", 2016, [2, 3, 4]} # [2, 3, 4] is not a hashable type
print(myset)
in the above example [2, 3, 4] is list not a hashable type, so it raises error
To create an empty set we have to use set() function, not
{}
Because {} creates an empty dictionary not set
s1 = {}
s2 = set()
print(type(s1)) # prints <class 'dict'>
print(type(s2)) # prints <class 'set'>
Using add() function we can add a single element to a set
myset = {1, 2, 3}
myset.add(4)
myset.add(5)
print(myset)
Sets are unordered so the elements might be printed in any order
Using update()
we can add a iterable like list , tuple to existing set elements
myset = {1, 2, 3}
myset.update([4, 5])
myset.update((6, 7))
print(myset)
4 ,5 , 6 and 7 became each element of the set
We can remove items from a set using methods remove() and discard()
myset = {1, 2, 3, 4, 5, 6}
myset.remove(2) # removes 2 from set
myset.discard(4) # removes 4 from set
print(myset)
remove() raises an error if the item is not available in set, but discard() does not
If
item is not available the set remain unchanged if we are using discard()
myset = {1, 2, 3, 4, 5, 6}
myset.discard(9) # 9 is not available
print(myset) # prints {1, 2, 3, 4, 5, 6}
myset.remove(9) # raises error
print(myset)