Skip to content
Home / Fundamentals

Python Set

Why use a set

A set is an unordered collection of unique elements. Sets are commonly used to store collections of data that do not need to be in a specific order, and for which duplicates are not allowed.

One reason to use a set is for fast membership testing. It is much faster to check if an element is in a set than it is to check if an element is in a list or tuple. This is because sets use a data structure called a hash table, which allows for fast membership testing.

Another reason to use a set is to remove duplicates from a list. You can create a set from a list and then convert it back to a list to get a list with all the duplicates removed.

Set Syntax

To create a set in Python, you can use the set function or enclose a sequence of elements in curly braces {}.

Here is an example of creating a set using the set function:

>>> my_set = set([1, 2, 3])
>>> my_set
{1, 2, 3}

Here is an example of creating a set using curly braces:

>>> my_set = {1, 2, 3}
>>> my_set
{1, 2, 3}

Note that when you create a set using curly braces, the elements are not required to be enclosed in quotes unless they are strings.

Set Characteristics As mentioned earlier, sets are unordered collections of unique elements. This means that the elements in a set do not have a specific order, and that no element can appear more than once in a set.

Here are some characteristics of sets in Python:

  • Sets are mutable, which means that you can add or remove elements from a set after it has been created.
  • Sets do not support indexing, so you cannot access the elements of a set using an index like you can with a list or tuple.
  • Sets do not support slicing, so you cannot use slice notation to access a range of elements in a set.
  • Sets do not support the + operator for concatenation, but you can use the union method to combine two sets.
  • Here is an example of adding and removing elements from a set:
>>> my_set = {1, 2, 3}
>>> my_set.add(4)
>>> my_set
{1, 2, 3, 4}
>>> my_set.remove(3)
>>> my_set
{1, 2, 4}

Here is an example of using the union method to combine two sets:

>>> set1 = {1, 2, 3}
>>> set2 = {3, 4, 5}
>>> set1.union(set2)
{1, 2, 3, 4, 5}

Best Practices

Here are some best practices for using sets in Python:

  • Use a set when you need to store a collection of unique elements and you do not care about the order of the elements.
  • Use the add method to add elements to a set and the remove method to remove elements from a set.
  • Use the union method to combine two sets, or the intersection method to find the elements that are common to both sets.