Python Sets

Python Sets are a collection type which contain an unordered collection of unique and immutable objects. In other words, a Python set can’t hold duplicate items and once a set is created, the items cannot change.

The order is not maintained. For example, everytime you print the same set, the order of items can be different.

In Python, sets are constructed using curly brackets {} and each item in the set is separated by a comma ,.

Like Python lists, sets can also contain multiple different types of objects, so they don’t all need to be strings, or integers. For example, we can have a set containing mixed types:

mixedTypesSet = {'one', True, 13, 2.0}

How to Create a Set

colorsSet = {"red", "green", "blue"}
print(colorsSet)

Output:

{'red', 'blue', 'green'}

How to Access Items of a Set

We cannot use an index to access an item in a set. This is because a set is unordered and doesn’t maintain an index. However, we can use the for loop to iterate through the items in a set.

colorsSet = {"red", "green", "blue"}
for c in colorsSet:
    print(c)

Output:

green
red
blue

How to Add Items to a Set

To add one item to a set we need to use the add() method.

To add more than one item to a set we need to use the update() method.

Adding One Item

colorsSet = {"red", "green", "blue"}
colorsSet.add("yellow")
print(colorsSet)

Output:

{'blue', 'red', 'green', 'yellow'}

Adding More Than One Item

colorsSet = {"red", "green", "blue"}
colorsSet.update(["yellow", "orange", "white"])
print(colorsSet)

Output:

{'white', 'red', 'green', 'yellow', 'orange', 'blue'}

How to Remove an Item From a Set

There are two methods to remove an item from a set: remove() and discard().

remove() method removes the specified item. If the item doesn’t exist, remove() will raise an error.

colorsSet = {"red", "green", "blue", "orange"}
colorsSet.remove("orange")
print(colorsSet)

Output:

{'blue', 'green', 'red'}

discard() method removes the specified item. If the item doesn’t exist, discard() will NOT raise an error.

Remove All Elements of a Set

To remove all elements and empty the set, we use the clear() method:

colorsSet = {"red", "green", "blue", "orange"}
colorsSet.clear()
print(colorsSet)

Output:

set()

Delete a Set Completely

To delete a set completely, use the del keyword:

colorsSet = {"red", "green", "blue", "orange"}
del colorSet
print(colorsSet)

Output:

Traceback (most recent call last):
  File "pythonSet.py", line 78, in <module>
    del colorSet
NameError: name 'colorSet' is not defined

How to Get the Length of a Set

You can get the set length by calling the len() method, e.g.:

colorsSet = {"red", "green", "blue", "orange"}
print(len(colorsSet))

Output:

4

How to Join Two Sets Together

The easiest way to join two sets together is to use the union() method which returns a new set containing items from joined sets.

colorsSet = {"red", "green", "blue", "orange"}
numbersSet = {1, 2, 3, 4}

numbersAndColors = colorsSet.union(numbersSet)
print(numbersAndColors)

Output:

{1, 2, 'blue', 3, 4, 'green', 'red', 'orange'}