- Set is a built in data-type(data-structure) in python.
- It only stores unique elements.
- It do not contains duplicate elements.
- We can iterate over sets.
What is set ?
In mathematics, a set is a well-defined collection of distinct objects, considered as a single object in its own right.
How to create a set in python?
# case1: empty set with built-in keyword
s = set()
print(s)
# Output: set([])
print(type(s))
# Output: set
# case2: set with initial data
s = {1, 'a', '@', 'batta', 2.22}
print(s)
# Output: set([2.22, 'batta', 1, 'a', '@'])
print(type(s))
# Output: set
How to add an element to a set in python ?
s = {1,2,3,4,5,6,'a'}
print(s)
# Output: set(['a', 1, 2, 3, 4, 5, 6])
s.add(100)
print(s)
# Output: set(['a', 1, 2, 3, 4, 5, 6, 100])
How to remove an element from set in python ?
s = {1,2,3,4,5,6,'a'}
r = s.remove(5)
print(s)
# Output: set(['a', 1, 2, 3, 4, 6])
print(r)
# Output: None
s = {1,2,3,4,5,6,'a'}
r = s.discard(5)
print(s)
# Output: set(['a', 1, 2, 3, 4, 6])
print(r)
# Output: None
How to remove and get last element from set in python ?
s = {1,2,3,4,5,6,'a'}
r = s.pop()
print(s)
# Output: set([1, 2, 3, 4, 5, 6])
print(r)
# Output: 'a'
How to clear or empty the set in python?
s = {'a', 1,2,3,4,5,6}
s.clear()
print(s)
# Output: set([])
How to copy set1 to set2 ?
s1 = {1,2,3,4, 'a', 'hello', 1.255}
# id - it is a built-in function it returns the memory location of python object.
s2 = s1.copy()
print(id(s1))
# Output: 139864877446360
print(id(s2))
# Output: 139864877446128
# if we do not use 'copy'
s3 = {1,2,3,4}
s4 = s3
print(id(s3))
# Output: 139864878456528
print(id(s4))
# Output: 139864878456528
How to find difference of two sets in python ?
s1 = {1,2,3,4,5,6,7,8}
s2 = {4,5,6,9, 10, 11, 12, 13, 14}
difference = s1.difference(s2)
print(difference)
# Output: set([8, 1, 2, 3, 7])
# shortcut method
difference = s1 - s2
print(difference)
# Output: set([8, 1, 2, 3, 7])
# It do not modify the initial data in s1, s2
print(s1)
# Output: set([1, 2, 3, 4, 5, 6, 7, 8])
print(s2)
# Output: set([4, 5, 6, 9, 10, 11, 12, 13, 14])
How to update the difference of set1, set2 into set1 ?
s1 = {1,2,3,4,5,6,7,8}
s2 = {4,5,6,9, 10, 11, 12, 13, 14}
difference = s1.difference_update(s2)
print(difference)
# Output: None
print(s1)
# Output: set([1, 2, 3, 7, 8])
print(s2)
# Output: set([4, 5, 6, 9, 10, 11, 12, 13, 14])
How to find the common elements in set1, set2 in python?
s1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
s2 = {4, 5, 6, 9, 10, 11, 12, 13, 14}
intersection = s1.intersection(s2)
print(intersection)
# Output: set([4, 5, 6, 9, 10, 11])
How to check whether set1 and set2 contains common elements or not ?
# find if sets disjoint or not
set1 = set([1, 2.55, 3, "a"])
set2 = set(["hello", "world", "batta"])
is_disjoint = set1.isdisjoint(set2)
print(is_disjoint)
# Output: True
# Because there are no common elements
set1 = set([1, 2.55, 3, "a"])
set2 = set(["hello", 1, "a"])
is_disjoint = set1.isdisjoint(set2)
print(is_disjoint)
# Output: False
# common elements are 1, "a"
How to check if given set s1 is subset of other set s2 or not ?
# case1
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9} # superset
set2 = {1, 3, 5} # subset
result = set2.issubset(set1)
print(result)
# Output: True
# case2
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9} # superset
set2 = {1, 3, 5} # subset
result = set1.issubset(set2)
print(result)
# Output: False
# case3
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9}
set2 = {1, 3, 5, "extra element"}
result = set2.issubset(set1)
print(result)
# Output: False
How to check if given set s1 is superset of other set s2 or not ?
# case1
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9} # superset
set2 = {1, 3, 5} # subset
result = set1.issuperset(set2)
print(result)
# Output: True
# case2
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9} # superset
set2 = {1, 3, 5} # subset
result = set2.issuperset(set1)
print(result)
# Output: False
# case3
set1 = {0, 1, 2, 3, "abcd", 5, 6, 7, 8, 9}
set2 = {1, 3, 5, "extra element"}
result = set1.issuperset(set2)
print(result)
# Output: False
How to combine(union) set1 and set2 ?
set1 = {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}
set2 = {1, 3, 5, 'extra element'}
result = set1.union(set2) # it will not modify the original sets & returns union of two sets.
print(result)
# Output: {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd', 'extra element'}
# check if original sets changed or not
print(set1)
# Output: {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}
prnt(set2)
# Output: {1, 3, 5, 'extra element'}
How to update set1 with other set set2 ?
set1 = {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}
set2 = {1, 3, 5, 'extra element'}
result = set1.update(set2) # it will update the operating set & returns None.
print(result)
# Output: None
print(set1)
# Output: {'abcd', 1, 2, 3, 5, 6, 7, 8, 9, 'extra element', 0}
print(set2)
# Output: {1, 3, 5, 'extra element'}
How to find symmetric difference of two sets ?
symmetric difference is known as the disjunctive union, of two sets is the set of elements which are in either of the sets and not in their intersection.set1 = {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}
set2 = {1, 3, 5, 'extra element'}
result = set1.symmetric_difference(set2) # It will not change the original sets.
# it removes common elements in both sets and returns the union of remaining elements.
print(result)
# Output: {0, 2, 6, 7, 8, 9, 'abcd', 'extra element'}
# print original sets
print(set1)
# Output: {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}
print(set2)
# Output: {1, 3, 5, 'extra element'}
How to find symmetric difference of two sets and update the result in same set?
set1 = {0, 1, 2, 3, 5, 6, 7, 8, 9, 'abcd'}Note: You can pass any iterable data to set methods.
set2 = {1, 3, 5, 'extra element'}
result = set1.symmetric_difference_update(set2)
# it removes common elements in both sets and updates set1 with union of remaining elements.
print(result)
# Output: None
# print original sets
print(set1)
# Output: {0, 2, 6, 7, 8, 9, 'abcd', 'extra element'}
print(set2)
# Output: {1, 3, 5, 'extra element'}