Examples of how to remove common elements between two lists in python
Create lists in python
Let's consider the following lists:
a = [1,1,2,3,4,5,6]
b = [2,4]
c = [2,4,7,8]
Remove common elements using the python ^ operator
To remove common elements between a and b lists, a solution is to use the python ^ operator:
list( set(a)^set(b) )
returns here
[1, 3, 5, 6]
and
list( set(a)^set(c) )
returns
[1, 3, 5, 6, 7, 8]
Note that with this approach duplicate elements are removed.
Remove common elements using a "list comprehension"
Another solution is to use intersection():
list( set(a).intersection(b) )
gives
[2, 4]
list( set(a).intersection(c) )
also gives
[2, 4]
with a "list comprehension":
new_a = [e for e in a if e not in list( set(a).intersection(b) )]
new_b = [e for e in b if e not in list( set(a).intersection(b) )]
print(new_a)
print(new_b)
gives
[1, 1, 3, 5, 6]
[]
To avoid creating new lists:
for e in a:
if e in i:
a.remove(e)
gives
[1, 1, 3, 5, 6]
Remove common elements using difference
Another solution:
list( set(a).difference(b) )
gives
[1, 3, 5, 6]
Same as
list( set(a) - set(b) )
gives
[1, 3, 5, 6]
Check if a list is a subset of another list
Note: there are different approaches to remove common elements between two lists. It might be useful to check first if one list is a subset of another:
set(b).issubset(set(a))
here it will give:
True
while
set(c).issubset(set(a))
returns:
False