# Remove common elements from two list in Python

• Difficulty Level : Medium
• Last Updated : 18 Jul, 2022

Given two lists, the task is to write a Python program to remove all the common elements of two lists.

Examples:

Input : list1 = [1, 2, 3, 4, 5]

list2 = [4, 5, 6, 7, 8,]

Output : list1 = [1, 2, 3]

list2 = [6, 7, 8]

Explanation: Lists after removing common elements of  both the lists i.e, 4 and 5.

Input : list1 = [1, 2, 3]

list2 = [1, 2, 3]

Output :  list1 = []

list2 = []

Explanation: They have all the elements in common in

between them.

## Method 1: Using Remove() Method

The remove() method removes the first matching element (which is passed as an argument) from the list.

## Python3

 `# Python program to remove common elements` `# in the two lists using remove method` `def` `remove_common(a, b):`   `    ``for` `i ``in` `a[:]:` `        ``if` `i ``in` `b:` `            ``a.remove(i)` `            ``b.remove(i)`   `    ``print``(``"list1 : "``, a)` `    ``print``(``"list2 : "``, b)`   `if` `__name__ ``=``=` `"__main__"``:`   `    ``a ``=` `[``1``, ``2``, ``3``, ``4``, ``5``]` `    ``b ``=` `[``4``, ``5``, ``6``, ``7``, ``8``]`   `    ``remove_common(a, b)`

Output:

```list1 :  [1, 2, 3]
list2 :  [6, 7, 8]```

## Method 2: Using List Comprehension

List comprehension gives a shorter syntax when you want to create a new list based on the elements of the existing list.

## Python3

 `# Python program to remove common elements` `# in the two lists using list comprehension` `def` `remove_common(a, b):`   `    ``a, b ``=` `[i ``for` `i ``in` `a ``if` `i ``not` `in` `b], ` `    ``[j ``for` `j ``in` `b ``if` `j ``not` `in` `a]`   `    ``print``(``"list1 : "``, a)` `    ``print``(``"list2 : "``, b)`   `if` `__name__ ``=``=` `"__main__"``:`   `    ``a ``=` `[``1``, ``2``, ``3``, ``4``, ``5``]` `    ``b ``=` `[``4``, ``5``, ``6``, ``7``, ``8``]`   `    ``remove_common(a, b)`

Output:

```list1 :  [1, 2, 3]
list2 :  [6, 7, 8]```

## Method 3: Using Set’s difference operator

The difference operator – gets items in the first set but not in the second.

## Python3

 `# Python program to remove common elements` `# in the two lists using Set’s difference` `# operator` `def` `remove_common(a, b):`   `    ``a, b ``=` `list``(``set``(a) ``-` `set``(b)), ` `    ``list``(``set``(b) ``-` `set``(a))`   `    ``print``(``"list1 : "``, a)` `    ``print``(``"list2 : "``, b)`     `if` `__name__ ``=``=` `"__main__"``:`   `    ``a ``=` `[``1``, ``2``, ``3``, ``4``, ``5``]` `    ``b ``=` `[``4``, ``5``, ``6``, ``7``, ``8``]`   `    ``remove_common(a, b)`

Output:

```list1 :  [1, 2, 3]
list2 :  [6, 7, 8]```

## Method 4: Using Python Set difference() Method

The difference() method in python returns a set that contains the difference between two sets i.e, the returned set contains items that exist only in the first set and excludes elements present in both sets.

## Python3

 `# Python program to remove common elements` `# in the two lists using Set difference()` `# method` `def` `remove_common(a, b):`   `    ``a, b ``=` `list``(``set``(a).difference(b)), ``list``(``set``(b).difference(a))`   `    ``print``(``"list1 : "``, a)` `    ``print``(``"list2 : "``, b)`   `if` `__name__ ``=``=` `"__main__"``:`   `    ``a ``=` `[``1``, ``2``, ``3``, ``4``, ``5``]` `    ``b ``=` `[``4``, ``5``, ``6``, ``7``, ``8``]`   `    ``remove_common(a, b)`

Output:

```list1 :  [1, 2, 3]
list2 :  [6, 7, 8]```

The time and space complexity of all the methods are the same:

Time Complexity: O(n)

Space Complexity: O(n) -> depends on length of lists

My Personal Notes arrow_drop_up
Recommended Articles
Page :