Python3 Sets DS
Python Data Structures: Sets
Sets :
-> A set is an unordered collection of items. Each element is unique (no duplicates).
-> The set itself is mutable .We can add or remove items from it.
-> Sets can be used to perform mathematical set operations like union ,intersection ,symmetric ,difference etc.
Set Creation :
Eg:
#set of integerss={1,2,3}print(s)print(type(s))
output: set([1,2,3])
< type 'set' >
#set does not allow duplicates. They store only one instance.
s={1,2,3,1,2}print(s)
output: {1,2,3}
Eg:
#we can make set from a list
s=set([1,2,3,1])print(s)
output: {1,2,3}
Eg:
#initialize a set with set( ) method
s=set( )print(type(s))
output: < class 'set' >
Add element to a Set :
Eg:
#we can add single element using add( ) method and#add multiple elements using update( ) methods={1,2,3}#set object can't support indexingprint(s[1])
output: -----------------------------------------------------------------
--
TypeError
TypeError : 'set' object does not support indexing
Eg:
#add elements={1,2,3}s.add(4)print(s)#add multiple elementss.update([5,6,1])print(s)#add list and sets.update([7,9],{10,2,3})print(s)
output: {1,2,3,4}
{1,2,3,4,5,6}
{1,2,3,4,5,6,7,9,10}
Remove elements from a Set :
#A particular item can be removed from set using methods,
#discard( ) and remove( ).
Eg:
s={1,3,2,4,5}print(s)s.discard(3)print(s)
output: {1,2,3,4,5}
{1,2,4,5}
#remove an element
s.remove(4)print(s)
output: {1,2,5}
#remove an element not present in a set s
s.remove(7)
output: ----------------------------------------------------------------------
--
KeyError
KeyError: 7
#discard an element not present in a set s
s.discard(7)print(s)
output: {1,2,5}
#we can remove item using pop( ) method
s={1,2,3,4,5}s.pop( ) #remove random elementprint(s)s.pop( )print(s)
output: {2,3,4,5}
{3,4,5}
#remove all item in set using clear( ) method
s={1,2,3,5,6}s.clear( )print(s)
output: set( )
Python Set Operations :
set1={1,3,2,4,5}set2={3,4,6,7,8}
#union of 2 sets using | operator
print(set1 | set2)
output: {1,2,3,4,5,6,7,8}
#another way of getting union of 2 sets
print(set1.union(set2))
output: {1,2,3,4,5,6,7,8}
#intersection of 2 sets using & operator
print(set1 & set2)
output: {3,4}
#use intersection function
print(set1.intersection(set2))
output: {3,4}
#Set Difference: set of elements that are only in set1 but not in set2
print(set1 - set2)
output: {1,2,5}
#use difference function
print(set1.difference(set2))
output: {1,2,5}
""" symmetric difference: set of elements in both set1 and set2
#except those that are common in both"""
#use ^ operator
print(set1 ^ set2)
output: {1,2,5,6,7,8}
#use symmetric_difference function
print(set1.symmetric_difference(set2))
output: {1,2,5,6,7,8}
Eg:
#find issubset( )
x={"a","b","c","d"}y={"a","b","c"}print("set 'x' is subset of 'y' ?",x.issubset(y))print("set 'y' is subset of 'x' ?",y.issubset(x))
output: set 'x' is subset of 'y' ? False
set 'y' is subset of 'x' ? True
Frozen Sets :
Frozen sets have characteristics of sets, but we can't be changed once it's assigned. While tuple are immutable lists, frozen sets are immutable sets.
Frozen can be created using the function frozenset()
Set 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.
This datatype support methods like copy(), difference(),
intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() and union(). Being immutable it can't have method that add or remove elements.
Eg:
set1=frozenset([1,2,3,4])set2=frozenset([3,4,5,6])
st1.add(5)
output: -----------------------------------------------------------------
AttributeError
AttributeError: 'frozenset' object has no attribute 'add'
***it does not support indexing also.
print(set1 | set2)print(set1 & set2)print(set1 ^ set2)
output: frozenset({1,2,3,4,5,6})
frozenset({3,4})
frozenset({1,2,5,6})
Comments
Post a Comment