In this tutorial, we will discuss everything of Python Sets. We will learn how to create and remove a set and also learn all the properties and operation associated to a set.

## Python Sets

A set is an unordered, and unique collection of Items. A set does not store duplicates items. Sets are considered as mutable data objects because its items can be deleted and added.

**Hot to create a Set?**

To create a set we use curly braces { } and store each item inside it and separate them with a comma. Like a list, a set can also store any type of data object except the mutable items.

We can also convert a list into a set using a built-in function set()

**Let’s understand it with an example:**

set_1 = {1,2,"hello","world"} print(set_1) set_2 = {True , False, (1,2,3,4) } print(set_2)

**#Output**

{1, 2, 'hello', 'world'} {False, True, (1, 2, 3, 4)}

**Behind the Code:**

In the output statement of set_2, the output is not the same as we have assigned it because sets are unordered collections of items. The item inside the sets shuffle.

**Change Sets items**

Sets are mutable and by using add() and update() methods we can add single and multiple items in the set.

Sets store items in unordered sequences so there is no concept of accessing Sets item using index. Set also do not store duplicate items so if we try to add an item which is already in a set it won’t store.

**Examples**

set_1= {1,2,3,4,5} set_1.add(6) #adding an item in a set set_1.update({7,8,9}) #addind multiple items set_1.update({2,2,2,2,3,3}) #adding duplicate items print(set_1)

**#Output**

{1, 2, 3, 4, 5, 6, 7, 8, 9}

**Remove items from a set**

We can remove the specific items from a set using the remove() and discard() methods. The difference between remove() and discard method is, the remove() method will raise an error if we try to remove that item which is not present in the set, that’s why with sets we use discard method.

**Example:**

set_1= {1,2,3,4,5} set_1.remove(2) set_1.discard(4) print(set_1)#Output

{1, 3, 5}

We can also use pop() method to remove the last element of the set though there is no sequence in a set, so it pops out the random element.

And to clear all items of a set we use the clear() method.

**Example**

set_1 = {1,2,3,4,5,6,7,8} set_1.pop() print(set_1) set_1.clear() #Clear all items of set print(set_1)

**#output**

{2,4,3,5,7,6,8} set()

**Set Operations**

Like the mathematical concept of sets, python set also follows all the mathematical set operations such as union, intersection, difference and symmetric difference.

**Union (|)**

We use | operator and union() method to perform union operation between two sets. Union is used to combine two set without duplicating any items

A | B == B|A

**Example:**

a = {1,2,3,4} b = {3,4,5,6} c= a | b #union d = a.union(b) print(c) print(d)

**#output**

{1, 2, 3, 4, 5, 6} {1, 2, 3, 4, 5, 6}

**Intersection**

We use **& **operator and intersection() method to perform intersection operation between two sets. We use the intersection operation to get the common items between two sets.

**Example:**

a = {1,2,3,4} b = {3,4,5,6} c = a & b d = a.intersection(b) print(c) print(d)

**#Output**

{3, 4} {3, 4}

**Set Difference:**

We use – operator and difference() method to perform set difference operation. A – B return only those elements of A which are not in B.

A – B != B – A

**Example**

a = {1,2,3,4} b = {3,4,5,6} c = a - b d = b - a print("a-b is:", c) print("b-a is:",d)

**#Output**

a-b is: {1, 2} b-a is: {5, 6}

**Set Symmetric Difference**

Symmetric difference sets of A and B will return a set of elements having elements of both sets except the common in both.

We can use ^ operator and symmetric_difference() method to perform symmetry difference.

A ^ B == B ^ A

**Example:**

a = {1,2,3,4} b = {3,4,5,6} c = a ^ b d = b ^ a print("a ^ b is:", c) print("b ^ a is:",d)

**#Output**

a ^ b is: {1, 2, 5, 6} b ^ a is: {1, 2, 5, 6}

**Python Set Methods:**

Python has its own methods here we have mentioned all the sets methods:

- add()
- clear()
- copy()
- difference()
- difference_update()
- discard()
- intersection()
- intersection_update()
- isdisjoint()
- issubset()
- issuperset()
- pop()
- remove()
- symmetric_difference()
- symmetric_difference_update()
- union()
- update()

**Frozenset: **

Frozensets are those sets which are immutable and to form a immutable set or frozensets we use frozenset() function.

**Example:**

fs = frozenset([1,2,3,4,5,6,7]) fs_2 = frozenset ( ["hello", "world"]) print("type of fs is :", type(fs)) print("fs_2 is:", fs_2)

**#Output**

type of fs is : <class 'frozenset'> fs_2 is: frozenset({'world', 'hello'})