8.Set in Python.docx
8.Set in Python.docx
website:https://pythonlife.in/
Python Sets
A set is an unordered collection of items. Every set element is unique (no duplicates) and
must be immutable (cannot be changed).
However, a set itself is mutable. We can add or remove items from it.
Sets can also be used to perform mathematical set operations like union, intersection,
symmetric difference, etc.
in
It can have any number of items and they may be of different types (integer,
e.
float, tuple, string etc.). But a set cannot have mutable elements like lists, sets
or dictionaries as its elements.
lif
# Different types of sets in Python
on
# set of integers
th
my_set = {1, 2, 3}
print(my_set)
Py
print(my_set)
# initialize a with {}
a = {}
print(type(a))
a = set()
print(type(a))
in
We cannot access or change an element of a set using indexing or slicing. Set data type does not
support it. e.
lif
We can add a single element using the add ( ) method, and multiple elements using the update ( )
method. The update ( ) method can take tuples, lists, strings or other sets as its argument. In all
on
# initialize my_set
th
my_set = {1, 3}
Py
print(my_set)
# my_set[0]
# add an element
# Output: {1, 2, 3}
my_set.add(2)
print(my_set)
my_set.update([2, 3, 4])
print(my_set)
# Output: {1, 2, 3, 4, 5, 6, 8}
print(my_set)
in
The only difference between the two is that the discard ( ) function leaves a set
unchanged if the element is not present in the set. On the other hand, the remove ( )
e.
function will raise an error in such a condition (if element is not present in the set).
lif
The following example will illustrate this.
on
# initialize my_set
th
my_set = {1, 3, 4, 5, 6}
Py
print(my_set)
# discard an element
# Output: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)
# remove an element
# Output: {1, 3, 5}
my_set.remove(6)
print(my_set)
# discard an element
my_set.discard(2)
print(my_set)
# remove an element
# Output: KeyError
my_set.remove(2)
Similarly, we can remove and return an item using the pop ( ) method.
Since set is an unordered data type, there is no way of determining which item will be popped. It is
completely arbitrary.
in
We can also remove all the items from a set using the clear ( ) method
# initialize my_set
print(my_set)
th
# pop an element
print(my_set.pop())
my_set.pop()
print(my_set)
# clear my_set
# Output: set()
my_set.clear()
print(my_set)
5
website:https://pythonlife.in/
in
e.
lif
on
th
Py
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# use | operator
6
website:https://pythonlife.in/
# Output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)
Output
{1, 2, 3, 4, 5, 6, 7, 8}
Set Intersection
in
e.
lif
on
th
Py
Intersection of A and B is a set of elements that are common in both the sets
Intersection is performed using & operator. Same can be accomplished using the Intersection ( )
method
# Intersection of sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
print(A & B)
Output
{ 4, 5 }
Set Difference
in
e.
lif
on
th
Py
Difference of the set B from set A (A-B) is a set of elements that are only in A but not in B.
Difference is performed using – operator. Same can be accomplished using the difference ( ) method.
# initialize A and B
A = {1, 2, 3, 4, 5}
8
website:https://pythonlife.in/
B = {4, 5, 6, 7, 8}
# use - operator on A
# Output: {1, 2, 3}
print(A - B )
Output
{1, 2, 3}
in
e.
lif
on
th
Py
Symmetric Difference of A and B is a set of elements in A and B but not in both (excluding the
intersection).
Symmetric difference is performed using ^ operator. Same can be accomplished using the method
symmetric_difference ( )
# initialize A and B
9
website:https://pythonlife.in/
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# use ^ operator
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)
Output
{1, 2, 3, 6, 7, 8}
in
all the methods that are available with the set objects:
e.
lif
Other Set Operations
on
# in keyword in a set
# initialize my_set
my_set = set("apple")
# Output: True
print('a' in my_set)
# Output: False
in
e
e.
lif
on
th
Py
Python Frozenset
Frozenset is a new class that has the characteristics of a set, but its elements cannot be
changed once assigned. While tuples are immutable lists, frozensets are immutable sets.
Sets being mutable are unhashable, so they can't be used as dictionary keys. On the other
hand, frozensets are hashable and can be used as keys to a dictionary.
11
website:https://pythonlife.in/
Frozensets can be created using the frozenset() function.
This data type supports methods like: copy(),difference(),intersection(),isdisjoint(),issubset(),
issuperset(),symmetric_difference(), and union(). Being immutable, it does not have methods
that add or remove elements.
in
e.
lif
on
th
Py