Sets in Python
Sets in Python
We all have learnt about sets and set theory in mathematics at some point. The mathematical definition of a set can be abstract and difficult to grasp. In simple words, a set is a well-defined collection of distinct objects, typically called elements or members.
Python Sets
In Python set is a built-in type having characteristics:
- Sets is an unordered collection of items.
- Elements in set are unique ( No Duplicate elements ).
- Elements of set are immutable ( Can not be changed ), however a set itself is mutable. We can add or remove items.
Creating Python Sets
A set can be created in two ways :
- Placing elements inside { } braces separated by comma
- By using built-in set() function
#Creating python sets
#create a set usign {}
#Set having same type of elements
#output: {1, 2, 3, 4}
mySet={1,2,3,4}
print(mySet)
#Set having different types of elements
#output: {'hello', 'prepinsta', 2, 1}
mySet={"prepinsta",1,2,2,"hello"}
print(mySet)
#create set using set(argument) method
#By passing a string as an argument
#output: {'A','P','R','T','N','I','E','S'}
mySet=set("PREPINSTA")
print(mySet)
#By passing a variable as an argument
#output: {'a', 'n', 'u', 'M', 's', 'k'}
s="Muskan"
mySet=set(s)
print(mySet)
#By passing a list as an argument
#output: {1, 2, 3, 4, 5}
mySet=set([1,2,3,4,5])
print(mySet)
Output :
{1, 2, 3, 4}
{'hello', 'prepinsta', 2, 1}
{'A', 'P', 'R', 'T', 'N', 'I', 'E', 'S'}
{'a', 'n', 'u', 'M', 's', 'k'}
{1, 2, 3, 4, 5}
A set can be empty also, but creating an empty set is a bit tricky.
Python interprets empty curly braces ( { } ) as an empty dictionary, so their is only one way to define an empty set.
Using set() function we can create an empty set.
#creating an empty set mySet=set() print(mySet)
Output: set()
Modifying Python Sets
We can modify python sets by inserting and deleting elements from set.
Inserting elements into Python Sets
We can insert elements into python sets by two methods:
- add() – Single element can be inserted
- update() – Multiple elements can be inserted
#create set
#output : {1, 2.0, 'hello', 'M', 'Hello'}
mySet = { "Hello" , 'M' , 1 , 2.0 , 1 , "Hello" , "hello" }
print(mySet)
#insert single element using add()
#"PrepInsta" will be added to the set
#output : {1, 2.0, 'hello', 'M', 'Hello', 'PrepInsta'}
mySet.add("PrepInsta")
print(mySet)
#insert multiple elements using update()
#letters of "prepinsta" word will be added to the set
#output : {'a', 1, 2.0, 'n', 't', 'e', 'hello', 'P', 'M', 'I', 'Hello', 's', 'r', 'p', 'PrepInsta'}
mySet.update("PrepInsta")
print(mySet)
#inserting the element which is already present in the set
#set will remain same
#output : {'a', 1, 2.0, 'n', 't', 'e', 'hello', 'P', 'M', 'I', 'Hello', 's', 'r', 'p', 'PrepInsta'}
mySet.add( 1 )
print(mySet)
Output :
{1, 2.0, 'hello', 'M', 'Hello'}
{1, 2.0, 'hello', 'M', 'Hello', 'PrepInsta'}
{'a', 1, 2.0, 'n', 't', 'e', 'hello', 'P', 'M', 'I', 'Hello', 's', 'r', 'p', 'PrepInsta'}
{'a', 1, 2.0, 'n', 't', 'e', 'hello', 'P', 'M', 'I', 'Hello', 's', 'r', 'p', 'PrepInsta'}
Deleting elements from Python Sets
Deletion can be done by three methods :
- remove() – Removes the element from the set only if the element is present in the set otherwise error or exception is raised.
- discard() – Removes the element from the set only if the element is present in the set otherwise no error or exception is raised and the original set is printed.
- pop() – Randomly removes an item from the set and return removed item.
#create set
#output : {1, 2.0, 'hello', 'M', 'Hello'}
mySet = { "Hello" , 'M' , 1 , 2.0 , 1 , "Hello" , "hello" }
print(mySet)
#delete element using remove() which is present in the set
#output : {1, 2.0, 'M', 'Hello'}
mySet.remove("hello")
print(mySet)
#delete element using discard() which is present in the set
#output : {2.0, 'M', 'Hello'}
mySet.discard(1)
print(mySet)
#delete element using pop()
#output : {'M', 'Hello'}
mySet.pop()
print(mySet)
Output :
{1, 2.0, 'M', 'Hello', 'hello'}
{1, 2.0, 'M', 'Hello'}
{2.0, 'M', 'Hello'}
{'M', 'Hello'}
Difference between remove() and discard() methods
remove()
#delete element using remove() which is not present in the set
#output : KeyError: 'PrepInsta'
mySet.remove("PrepInsta")
print(mySet)
Output :
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in ()
50 #output : KeyError: 'PrepInsta'
---> 51 mySet.remove("PrepInsta")
52 print(mySet)
KeyError: 'PrepInsta'
discard()
#delete element using remove() which is not present in the set
#output : KeyError: 'PrepInsta'
mySet.remove("PrepInsta")
print(mySet)
Output :
{'M', 'Hello'}
If we try to pop() element from an empty set an error will occur.
#trying to pop from an empty set #output : KeyError: 'pop from an empty set' emptySet = set() emptySet.pop() print(emptySet)
Output :
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in ()
61 emptySet = set()
---> 62 emptySet.pop()
63 print(emptySet)
KeyError: 'pop from an empty set'
Iterators in Python Sets
There is no index attached to any element in a python set. So they do not support any indexing or slicing operation. We can iterate python sets
mySet = { "Hello" , 'M' , 1 , 2.0 , "hello" }
for i in mySet:
print(i)
Output : 1 2.0 M Hello hello
Membership Test
#create a set
mySet = { 1,5,10,15,20,25 }
for i in range(1,16):
#checking the membership of i in mySet
if i in mySet:
print(i)Output : 1 5 10 15
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others

Login/Signup to comment