TL;DR – A Python set is a built-in data type that stores a group of elements without ordering them. No duplicate elements are allowed in a given set.

#### Contents

## Defining a set

You can define a set by using the Python `set()`

function. To use it, you’ll need to provide the elements you want to include in the set in the form of an iterable object such as a string.

There are two types of sets in Python: `set`

and `frozenset`

. The difference between the two is that a `set`

is mutable, which means that you can change its contents, while a `frozenset`

is not. Because a `frozenset`

can’t be changed once created, you can only use operations that don’t modify set contents on a `frozenset`

.

Note:in Python, strings, lists and tuples are alliterable.

Alternatively, you can define a set explicitly using curly braces `{}`

. When you define a set in this manner, each element you add is treated as a distinct element of the set:

**Example**

`yourSet = {'bmw', 'toyota', 'volvo', 'chrysler'}`

Note:Python sets can be modified at any time after creation.

## Creating an empty set

You can define an empty set using the `set`

function:

**Example**

```
yourSet = set()
print(yourSet)
```

You cannot, however, define an empty set using curly brackets (`{}`

) since Python interprets a set of empty curly brackets as a dictionary:

## Set elements

Python sets can include objects of different types, as long as they cannot be modified. That means you can’t include data types such as dictionaries:

##### Theory is great, but we recommend digging deeper!

## Getting information about the set

In Python, you can retrieve the length of a set as follows:

It’s also easy to determine if an element is a member of a set or not:

**Example**

```
yourSet = {'bmw', 'volvo', 'toyota'}
print('bmw' in yourSet)
print('chrysler' in yourSet)
```

## Methods and operators for sets

Below is a list of available Python set operations. If you have two sets (one called `set1`

and another called `set2`

), you can perform joint operations on both sets by either using an operator or calling a method function. Any exceptions are noted in the following table.

Set Operation | Returns... | Operator | Method |
---|---|---|---|

Union | All unique elements in `set1` and `set2` |
| | `union()` |

Intersection | Elements present in `set1` and `set2` |
& | `intersection()` |

Difference | Elements that are present in one set, but not the other | - | `difference()` |

Symmetric Difference | Elements present in one set or the other, but not both | ^ | `symmetric_difference()` |

Disjoint | `True` if the two sets have no elements in common |
None | `isdisjoint()` |

Subset | `True` if one set is a subset of the other (that is, all elements of `set2` are also in `set1` ) |
<= | `issubset()` |

Proper Subset | `True` if one set is a subset of the other, but `set2` and `set1` cannot be identical |
< | None |

Superset | `True` if one set is a superset of the other (that is, `set1` contains all elements of `set2` ) |
>= | `issuperset()` |

Proper Superset | `True` if one set is a superset of the other, but `set1` and `set2` cannot be identical |
> | None |

## Modifying sets

If you need to modify individual sets, you can also do so by performing set operations. Python allows you to:

- Add an element to a set:
`yourSet.add(<element>)`

- Remove an element from a set:
`yourSet.remove(<element>)`

- Remove an element from a set if present; otherwise, nothing occurs:
`yourSet.discard(<element>)`

- Remove a random element from a set:
`yourSet.pop(<element>)`

- Clear a set by removing all elements:
`yourSet.clear()`