Python Set – Things You MUST Know

Python Set

Python has four built-in data types data, list, tuple, dictionary, and set. These data types can store multiple collections of data.

A list is an ordered collection of data, it is a type of array that can store duplicate values, it is dynamic in size and mutable, and its elements can be accessed with their index. A tuple is also similar to a list but unlike the list, it is not mutable. A dictionary is also similar but it contains key-value pairs. On the other hand, a set is an unordered collection of data, it is iterable and mutable, and the key property is that it has no duplicate elements.

This tutorial will cover all the fundamental things you must know about a set in Python.

Python Set

A Python set is an unordered and unindexed collection of elements.

  • Every element is unique.
  • The set contains elements that are unordered.
  • No duplicates are allowed.
  • The set itself is mutable i.e. one can add/remove items(elements) from it.
  • Unlike arrays, wherein the elements are stored in order, the order of elements in a set is not defined.
  • The elements in the set are not stored in their order of appearance in the set.

Creating a Set

Set can be created by placing all the elements within curly braces {}, separated by a comma. They can also be created by using the built-in set() constructor.

The elements can be of different data types, but a set doesn’t support mutable elements. Sets are unordered, so one can’t be sure of the order of elements in which they will appear.

Example 1: Creating a Set using Curly Braces

Let’s pass some fruit’s names inside curly braces {}, assigned it to a variable, and print that variable.

Fruits = {"apple", "banana", "cherry","apple"} # Set contains different fruits

print(Fruits)

Output:

{‘apple’, ‘banana’, ‘cherry’}

Here you can see that the duplicate values are automatically removed which is one of the key properties of a set, hence the output is justified.

Example 2: Creating a Set using the set() Constructor

We have a list that contains days of the week, and some elements occur twice, let’s pass this list inside the set() constructor to see whether it converts the list into a set and removes all duplicates.

Days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Tuesday", "Wednesday", "Saturday", "Sunday"] # List contains days of week
daysSet = set(Days) # Convert list to set

print(daysSet)

Output:

{‘Monday’, ‘Thursday’, ‘Friday’, ‘Tuesday’, ‘Sunday’, ‘Wednesday’, ‘Saturday’}

Here you can see that we got a set as an output and duplicate values are removed.

Recommended Readings:

  1. List in Python
  2. Array in Python
  3. Python Tuple

Access elements from a Set

Since python sets are unordered and unindexed, one cannot access the elements by referring to their index, unlike arrays.

The elements of a set can be accessed by Iterating through them using a for loop.

Example: Accessing elements from a Set

We have a set containing various fruits, let’s print its elements one by one using for loop.

Fruits = {"apple", "mango", "cherry"}
for a in Fruits:
  print(a)

Output:

mango
cherry
apple

Here we got each element one by one, if you re-run the program, the order in which these elements print will change because a set store data in an unordered form.

Checking elements in a Set

We can check for a particular element that whether it exists in a set using the in keyword.

If the element exists, it will return true, and if not then false.

Example:

Again, we have a set containing various fruits, let’s check for some fruits that it exists or not.

Fruits = {"apple", "banana", "cherry","apple"} # Set contains different fruits

result = "apple" in Fruits # Check if "apple" is present in the set
print(result)

result2 = "orange" in Fruits # Check if "orange" is present in the set
print(result2)

Output:

True
False

Here for “apple” we get true means it is present in the set and for “orange” it returns false which state that it is not present in the set.

Add elements to a Set

We can add elements to a set by using add()method. The add()method takes an element as an argument to add it to the set.

Example: Addition of elements to a Set

Let’s use add() method to add an element “grapes” to the Fruits set and print it.

Fruits = {"apple", "mango", "cherry"}

Fruits.add("grapes")

print(Fruits)

Output:

{'cherry', 'apple', 'mango', 'grapes'}                                                                    

Here you can see that the element “grapes” is successfully added.

Update elements of a Set

We can use the update() method to update a set to add elements from any other iterable. The update() method takes an iterable as an argument to add its elements to the set.

Example: Addition of elements of a list to a set

Let’s use the update() method to add the elements of a list to the Fruits set and print it.

Fruits = {"apple", "mango", "cherry"}
Fruits_list = ["banana", "orange", "strawberry"]

Fruits.update(Fruits_list)

print(Fruits)

Output:

{'strawberry', 'mango', 'orange', 'banana', 'cherry', 'apple'}

Here you can see that the elements of the list are successfully added.

Removal of elements from a Set

We can delete the items from the set using either of the following methods:

  1. By using remove() method
  2. By using discard() method
  3. By using clear() method – deletes all the elements from the set
  4. By using del() method – deletes the entire set

Example 1: Using the remove() method

Fruits = {"apple", "grapes", "cherry"}

Fruits.remove("grapes")

print(Fruits)

Output:

{‘cherry’, ‘apple’}

Example 2: Using the discard() method

Fruits = {"apple", "grapes", "cherry"}

Fruits.discard("grapes")

print(Fruits)

Output:

{‘cherry’, ‘apple’}

Example 3: Using the clear() method

Fruits = {"apple", "grapes", "cherry"}

Fruits.clear()

print(Fruits)

Output:

set()

Example 4: Using the del() method

Fruits = {"apple", "grapes", "cherry"}

del Fruits

print(Fruits)

Output:

 Traceback (most recent call last):
 File "main.py", line 5, in <module>
 print(Fruits) 
NameError: name 'Fruits' is not defined

Methods in Sets

MethodDescription
add()Adds an element to the set
clear()Removes all the elements from the set
copy()Returns a copy of the set
difference()Returns a set containing the difference between two or more sets
difference_update()Removes the items in this set that are also included in another, specified set
discard()Remove the specified item
intersection()Returns a set, that is the intersection of two other sets
intersection_update()Removes the items in this set that are not present in other, specified set(s)
isdisjoint()Returns whether two sets have a intersection or not
issubset()Returns whether another set contains this set or not
issuperset()Returns whether this set contains another set or not
pop()Removes an element from the set
remove()Removes the specified element
symmetric_difference()Returns a set with the symmetric differences of two sets
symmetric_difference_update()inserts the symmetric differences from this set and another
union()Return a set containing the union of sets
update()Update the set with the union of this set and others

Set Operations in Python

Sets are used to carry out mathematical functionality set operations such as union, difference, intersection, and symmetric difference.

Set Union – Inclusion of all elements from both sets.

Either of the following methods performs union operation:

  • By using | operator
  • By using union() method

Example: Union of Sets

X = {1, 2, 3}
Y = {6, 7, 8}

print(X | Y)
print(Y.union(X))

Output:

{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}

Set Intersection – Inclusion of elements that are common to both sets.

Either of the following methods performs an intersection operation:

  • By using & operator
  • By using intersection() method

Example: Intersection of Sets

X = {1, 2, 3}
Y = {3, 2, 8}

print(X & Y)
print(Y.intersection(X))

Output:

{2, 3}
{2, 3}

Set Difference – Inclusion of elements from either of the sets.

(A – B) contains the elements that are only in set A but not in set B.

(B – A) contains the elements that are only in set B but not in set A.

Either of the following methods performs different operation:

  • By using - operator
  • By using difference() method

Example: Difference of Sets

X = {1, 2, 3}
Y = {3, 2, 8}

print(X - Y)

print(Y.difference(X))

Output:

{1}
{8}

Set Symmetric Difference – Inclusion of elements from both the sets except the common elements of the sets

Either of the following methods performs symmetric Difference operation:

  • By using ^ operator
  • By using symmetric_difference() method

Example: Symmetric Difference of Sets

X = {1, 2, 3, 9, 0}
Y = {3, 2, 8, 7, 5}

print(X ^ Y)

print(Y.symmetric_difference(X))

Output:

{0, 1, 5, 7, 8, 9}
{0, 1, 5, 7, 8, 9}

Summary

In this tutorial we have learned that the set in python is used to store an unordered collection of data, it is iterable, mutable, and has no duplicate elements. A set is created by using the curly braces {} or using the built-in constructor set(). Its element can be assessed using a loop.  We can use in keyword to check for the existence of a particular element. We can also add and remove elements to a set.

Hope this tutorial helps you to understand the sets in Python.

References