Sets¶
Set is a mutable, unordered collection of unique, hashable elements(may be of same or different types), which is indexed by a 0-based integer.
Creating Set¶
- Creating an empty set
x = set()
- Creating set with some initial elements
x = {2,3,0,'g'}
- Creating an empty set with
{}
is not possible as{}
is reserved for dictionarydict
objects
In [3]:
x = {1,2,5,3}
x
Out[3]:
{1, 2, 3, 5}
Accessing Set Elements¶
Being an unordered collection, sets do not record element position or order of insertion. Accordingly, sets do not support indexing, slicing, or other sequence-like behavior.
Operations on Set¶
Like any other collection, set
supports membership operators in
and not in
, elements of set
can be iterated. If A
and B
are 2 sets,Following is a list of other operations on set
A.union(B)
- returnsA.union_update(B)
-A.intersection(B)
- returnsA.intersection_update(B)
-A.isdisjoint(B)
- returnsA.issubset(B)
- returnsA.issuperset(B)
- returns
Other operations like set difference are also supported
In [5]:
x
Out[5]:
{1, 2, 3, 5}
In [6]:
x.union([2,4,6])
Out[6]:
{1, 2, 3, 4, 5, 6}
In [7]:
x.intersection([2,3])
Out[7]:
{2, 3}
In [8]:
x.intersection_update([1,3,4])
In [9]:
x
Out[9]:
{1, 3}
Note: Graph and Sets
Many Graph Algorithms are modelled using sets. A Graph is
considered as a collection of sets of vertices
and sets of
edges
Set of Sets¶
In many cases, it is required to have set of sets as in case of finding
subsets of a set. Since set
is not hashable, it is not possible to
have a ``set`` as an element of ``set``. In this case frozenset
comes handy. The only difference between frozenset
and a set
is
that frozenset
is immutable. We have to reassign value to it if we
want to modify it.