Data structures are used to organize data for efficient access when needed.

They are a vital part of programming languages and in Python they include: lists, dictionaries,sets and tuples. This article provides a brief overview of the set data structure.

## What are Sets?

- These are unordered collections with no duplicate elements, they can be created using curly braces ({}) or the set() function.
- Creating empty sets is only possible through the set() function, as the {} will create an empty dictionary, which is a different data structure altogether.
- Sets are mutable and therefore elements can be added or removed.
- Sets are used for membership testing i.e., checking whether a specific element is present in the sequence, elimination of duplicate entries as well as mathematical operations.

## Creation of a set

- Using set() function

```
>>> a = set((1, 2, 3))
>>> a
{1, 2, 3}
```

- Using curly braces

```
>>> my_set = {'Red', 'Yellow', 'Blue'}
>>> type(my_set)
<class 'set'>
```

## Modifying a set

The mutability of sets allows for the addition or removal of elements within a set, this is demonstrated below.

- Adding elements

```
>>> my_set = {1, 2, 3, 4, 5, 6}
>>> my_set.update((67,))
>>> my_set
{1, 2, 3, 4, 5, 6, 67}
```

- Removing elements

```
>>> my_set = {1, 2, 3, 4, 5, 6}
>>> my_set.remove((5))
>>> my_set
{1, 2, 3, 4, 6}
```

## Mathematical operations in sets

- Union: set of all the elements of both sets, without duplicates, uses the ‘|’ operator or the union() method

```
>>> a = {1, 2, 3, 4, 5, 6,}
>>> b = {9, 10 ,1, 11, 4}
>>> a | b
{1, 2, 3, 4, 5, 6, 9, 10, 11}
>>> a.union(b)
{1, 2, 3, 4, 5, 6, 9, 10, 11}
```

- Intersection: set of all common elements of both the sets, uses the ‘&’ operator or the intersection() method

```
>>> a = {1, 2, 3, 4, 5, 6,}
>>> b = {9, 10 ,1, 11, 4}
>>> a & b
{1, 4}
>>> a.intersection(b)
{1, 4}
```

- Difference: set of all elements in the first set that are not present in the second set, uses the ‘-’ operator or the difference() method

```
>>> a = {1, 2, 3, 4, 5, 6,}
>>> b = {9, 10 ,1, 11, 4}
>>> a - b
{2, 3, 5, 6}
>>> a.difference(b)
{2, 3, 5, 6}
```

- Symmetric difference: set of all elements that are either in the first set or the second set, but not in both, uses the ‘^’ operator or the symmetric_difference() method

```
>>> a = {1, 2, 3, 4, 5, 6,}
>>> b = {9, 10 ,1, 11, 4}
>>> a ^ b
{2, 3, 5, 6, 9, 10, 11}
>>> a.symmetric_difference(b)
{2, 3, 5, 6, 9, 10, 11}
```

## Top comments (1)

This is a good introduction to sets.