Python **Set** Intersection basically finds and returns elements common among the sets.

**Syntax:**

`set1.intersection(set2, set3, ... setN)`

set1.intersection(set2) is equivalent to set1 ∩ set2.

**Arguments**: Accepts one or more sets as an argument.

**Return Value**: Returns a set as output which contains elements common to all the sets.

## Ways to achieve Set Intersection in Python

Either of the following ways can be used to perform Python Set Intersection:

*By using the intersection() Method**By using the Python Bitwise “&” Operator**By using the intersection_update() Method**By using the “&=” Operator*

### Python Set Intersection using intersection() method

- The intersection() method takes one or more iterables as arguments i.e strings, lists, tuples, etc.
- The method compares and finds out the common elements among the passed iterables.
- Finally, a new set as output is created which contains the elements that are common to the iterables.

**Note:** *If any iterable other than set is passed as an argument, then firstly, the iterable object gets converted to a set object and then the intersection is performed on it.*

**Example:**

```
set1 = {10, 20, 30}
set2 = {30, 3, 9}
output = set1.intersection(set2)
print(output)
```

**Output:**

`{30}`

### Python Set Intersection using Bitwise “&” Operator

- The Python
**“&” Operator**also returns the intersection of elements of two or more sets. - The only difference between
**& operator**and**intersection() method**is that the & operator operates only on set objects while the intersection method can operate on any iterable object like lists, sets, etc.

**Example:**

```
set1 = {"Safa", "Aman", "Pooja", "Divya"}
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
Result = set1 & set2
print('Set 1: ',set1)
print('Set 2: ',set2)
print('Set Intersection: ',Result)
```

**Output:**

```
Set 1: {'Safa', 'Pooja', 'Divya', 'Aman'}
Set 2: {'Nisha', 'Aryan', 'Raghav', 'Safa', 'Divya'}
Set Intersection: {'Safa', 'Divya'}
```

### Python Set Intersection using intersection_update() method

The **intersection_update() method **basically returns the common elements among the iterables and updates the same set/iterable object on which the operation is performed.

**Note: ***It does not create a new set as an output. Instead, it updates the same input set with the result of the intersection operation*. *See below example to understand better*

**Example:**

```
set1 = {"Safa", "Aman", "Pooja", "Divya"}
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
print("Set1 before intersection operation: ", set1)
set1.intersection_update(set2)
print('Set Intersection of set1 and set2: ',set1)
print('Updated Set1: ',set1)
```

**Output:**

```
Set1 before intersection operation: {'Aman', 'Pooja', 'Divya', 'Safa'}
Set Intersection of set1 and set2: {'Divya', 'Safa'}
Updated Set1: {'Divya', 'Safa'}
```

### Python Set Intersection using the “&=” Operator

The **“&=” operator** also returns the intersection among the set objects.

**Note: ***The “&=” operator performs and operates only on set objects. It does not support any other iterable objects such as lists, strings, etc.*

**Example:**

```
set1 = {"Safa", "Aman", "Pooja", "Divya"}
set2 = {"Safa", "Aryan", "Nisha", "Raghav", "Divya"}
print("Set1 before intersection operation: ",set1)
set1 &= set2
print('Set Intersection of set1 and set2: ',set1)
print("Updated Set1: ", set1)
```

**Output:**

```
Set1 before intersection operation: {'Divya', 'Safa', 'Pooja', 'Aman'}
Set Intersection of set1 and set2: {'Divya', 'Safa'}
Updated Set1: {'Divya', 'Safa'}
```

## Conclusion

Thus, in this article, we have studied and implemented the Python Set Intersection with possible ways.