Python set is an un-ordered and un-indexed collection of elements.

- Every element is unique.
- The set contains elements that are un-ordered.
- No duplicates are allowed.
- The set itself is mutable i.e. one can add/remove items(elements) from it.
- Unlike arrays, wherein the elements are stored in order, the order of elements in a set is not defined.
- The elements in the set are not stored in their order of appearance in the set.

## Creation of Sets in Python

Set can be created by placing all the elements within curly braces {}, separated by a comma. They can also be created by using the built-in function `set()`

.

The elements can be of different data types, but a Set doesn’t support mutable elements. Sets are unordered, so one can’t be sure of the order of elements in which they will appear.

### Example: Creation of Sets

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) Fruits = {"apple", "banana", "cherry"} Name=set('Quit') print(Name) print(Fruits) print(Days)

**Output**:

{‘u’, ‘Q’, ‘i’, ‘t’}

{‘cherry’, ‘banana’, ‘apple’}

{‘Sun’, ‘Wed’, ‘Mon’, ‘Thu’, ‘Tue’, ‘Sat’, ‘Fri’}

**Recommended Readings:**

## Access elements from the Python Set

Since, sets are un-ordered and un-indexed, one cannot access the elements by referring to its index, unlike arrays.

The elements of the Sets can be accessed by either of the following ways:

- Iterate through the loop of the set items using a
`for`

loop . - Check whether a specified value is present in a set, by using the
`in`

keyword .

### Example: Accessing elements from a Set

Fruits = {"apple", "mango", "cherry"} for a in Fruits: print(a) print("banana" in Fruits) print("mango" in Fruits)

**Output**:

mango

cherry

apple

False

True

## Add elements to a Python Set

We can add elements to a set by using `add() `

function. In case, we require to add more elements we need to use `update()`

method to do so.

### Example: Addition of elements to a Set

Fruits = {"apple", "mango", "cherry"} Fruits.add("grapes") print(Fruits) Fruits.update(["banana", "orange", "strawberry"]) print(Fruits)

**Output**:

{‘cherry’, ‘apple’, ‘mango’, ‘grapes’}

{‘strawberry’, ‘cherry’, ‘apple’, ‘orange’, ‘banana’, ‘mango’, ‘grapes’}

## Removal of elements from a Set

We can delete the items from the Set using either of the following methods:

- By using
`remove()`

method - By using
`discard()`

method - By using
`clear()`

method – deletes all the elements from the Set - By using
`del()`

method – deletes the entire Set

### Example 1: Using remove() method

Fruits = {"apple", "grapes", "cherry"} Fruits.remove("grapes") print(Fruits)

**Output**:

{‘cherry’, ‘apple’}

### Example 2: Using discard() method

Fruits = {"apple", "grapes", "cherry"} Fruits.discard("grapes") print(Fruits)

**Output**:

{‘cherry’, ‘apple’}

### Example 3: Using clear() method

Fruits = {"apple", "grapes", "cherry"} Fruits.clear() print(Fruits)

**Output**:

set()

### Example 4: Using del() method

Fruits = {"apple", "grapes", "cherry"} del Fruits print(Fruits)

**Output**:

Traceback (most recent call last): File "main.py", line 5, in <module> print(Fruits) NameError: name 'Fruits' is not defined

## Methods in Sets

Method | Description |
---|---|

add() | Adds an element to the set |

clear() | Removes all the elements from the set |

copy() | Returns a copy of the set |

difference() | Returns a set containing the difference between two or more sets |

difference_update() | Removes the items in this set that are also included in another, specified set |

discard() | Remove the specified item |

intersection() | Returns a set, that is the intersection of two other sets |

intersection_update() | Removes the items in this set that are not present in other, specified set(s) |

isdisjoint() | Returns whether two sets have a intersection or not |

issubset() | Returns whether another set contains this set or not |

issuperset() | Returns whether this set contains another set or not |

pop() | Removes an element from the set |

remove() | Removes the specified element |

symmetric_difference() | Returns a set with the symmetric differences of two sets |

symmetric_difference_update() | inserts the symmetric differences from this set and another |

union() | Return a set containing the union of sets |

update() | Update the set with the union of this set and others |

## Set Operations in Python

Sets are used to carry out mathematical functionality set operations such as union, difference, intersection, and symmetric difference.

### Set Union – Inclusion of all elements from both the sets.

Union operation is performed by either of the following methods:

- By using
`|`

operator - By using
`union()`

method

#### Example: Union of Sets

X = {1, 2, 3} Y = {6, 7, 8} print(X | Y) print(Y.union(X))

**Output**:

{1, 2, 3, 6, 7, 8}

{1, 2, 3, 6, 7, 8}

### Set Intersection – Inclusion of elements that are common to both the sets.

Intersection operation is performed by either of the following methods:

- By using
`&`

operator - By using
`intersection(`

) method

#### Example: Intersection of Sets

X = {1, 2, 3} Y = {3, 2, 8} print(X & Y) print(Y.intersection(X))

**Output**:

{2, 3}

{2, 3}

### Set Difference – Inclusion of elements from either of the sets.

(A – B) contains the elements that are only in set A but not in set B.

(B – A) contains the elements that are only in set B but not in set A.

Difference operation is performed by either of the following methods:

- By using
`-`

operator - By using
`difference()`

method

#### Example: Difference of Sets

X = {1, 2, 3} Y = {3, 2, 8} print(X - Y) print(Y.difference(X))

**Output**:

{1}

{8}

### Set Symmetric Difference – Inclusion of elements from both the sets except the common elements of the sets

Symmetric Difference operation is performed by either of the following methods:

- By using
`^`

operator - By using
`symmetric_difference()`

method

#### Example: Symmetric Difference of Sets

X = {1, 2, 3, 9, 0} Y = {3, 2, 8, 7, 5} print(X ^ Y) print(Y.symmetric_difference(X))

**Output**:

{0, 1, 5, 7, 8, 9}

{0, 1, 5, 7, 8, 9}