Just like a list, a set is a collection of items. The difference between a set and a list is that a set cannot contain duplicates. So, if you have 5 chocolates and you put them in a set, you’ll only be left with 1 chocolate as duplicates will be removed. 😢

Picture of two circles with chess and ping pong in the left circle, soccer and cricket bat in the right circle, and basketball and badminton in both circles where they overlap

In the image above, the left side represents Indoor Games (Chess & Table Tennis) while the right side represents the Outdoor Games (Cricket & Football). The middle represents the common part of both these sets. These are the games that can be played Indoors as well as Outdoors (Basketball & Badminton). The middle part is also known as the intersection between two sets.

A set is created by using the set() function or placing all the elements within a pair of curly braces.

indoorGames = set(["Chess", "Table Tennis", "Basketball", "Badminton"])
outdoorGames = {"Cricket", "Football", "Basketball", "Badminton"}
print('** Indoor Games **')
print('** Outdoor Games **')


** Indoor Games **
set(["Chess", "Table Tennis", "Basketball", "Badminton"])
** Outdoor Games **
set(["Cricket", "Football", "Basketball", "Badminton"])

Union of Sets

If we have 2 sets as above, the union of these two sets contains the games from both the sets. The output will be a new set. The duplicates will be removed.

The symbol used for Union is |.

allGames = indoorGames | outdoorGames
print('** All Games **')


** All Games **
set(["Chess", "Table Tennis", "Basketball", "Badminton", "Cricket", "Football"])

Intersection of Sets

The intersection of 2 sets will be the set containing both indoor and outdoor games.

The symbol used for Intersection is &.

commonGames = indoorGames & outdoorGames
print('** Common Games **')


** Common Games **
set(["Basketball", "Badminton"])

Difference of Sets

The difference of 2 sets will be the set that contains games from one set that are not present in the other set.

The symbol used for Difference is -.

indoorOnlyGames = indoorGames - outdoorGames
print('** Indoor Only Games **')


** Indoor Only Games **
set(["Chess", "Table Tennis"])

You cannot print the items of a set using the item number like a list. The elements of a set are not in a fixed sequence.

Therefore, you cannot do something like indoorGames[0], or indoorGames[1] like you can do in a list. However, you can go through the elements of a set using a for loop.

for g in indoorGames:


Table Tennis

Adding items to a set

We can use the .add function to add a new game to a set.

print('** Indoor Games **')


** Indoor Games **
set(["Chess", "Table Tennis", "Basketball", "Badminton", "Carrom"])

Removing items to a set

We can use the .discard function to remove an item from the set.

print('** Indoor Games **')


** Indoor Games **
set(["Table Tennis", "Basketball", "Badminton", "Carrom"])

If you remove an item that is not present in the set, you won’t get any error.s On the other hand, if you try to remove an item that is not present in a list, you would get a ValueError!


Let’s try the same exercise we just did with Lists and Tuples, but using Sets.

Start with the list of fruits below. Print out the list of fruits and for each fruit, as the user if they like it. If they like it, keep it. If they do not, remove it from the list. Next, ask the user to add a fruit that is missing from the list. Add it to the list and print out the number of fruits the user likes.

fruits = ['orange', 'kiwi', 'banana', 'apple', 'mango', 'lemon']