Skip to content
Related Articles

Related Articles

Remove common elements from two list in Python

View Discussion
Improve Article
Save Article
  • 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 :

Start Your Coding Journey Now!