Eliminar elementos comunes de dos listas en Python

Dadas dos listas, la tarea es escribir un programa Python para eliminar todos los elementos comunes de dos listas. 

Ejemplos :

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

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

Salida : list1 = [1, 2, 3]  

              lista2 = [6, 7, 8]

Explicación : listas después de eliminar los elementos comunes de ambas listas, es decir, 4 y 5.

Entrada : list1 = [1, 2, 3]  

           lista2 = [1, 2, 3]

Salida : lista1 = []  

               lista2 = []

Explicación : Tienen todos los elementos en común en 

entre ellos.

Método 1: Uso del método Remove ()

El método remove() elimina el primer elemento coincidente (que se pasa como argumento) de la lista.

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)

Producción:

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

Método 2: Uso de la comprensión de listas

La comprensión de listas brinda una sintaxis más corta cuando desea crear una nueva lista basada en los elementos de la lista existente.

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)

Producción:

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

Método 3: Usar el operador de diferencia de Set

El operador de diferencia: obtiene elementos en el primer conjunto pero no en el segundo.

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)

Producción:

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

Método 4: Usar el método Python Set difference()

El método difference() en python devuelve un conjunto que contiene la diferencia entre dos conjuntos, es decir, el conjunto devuelto contiene elementos que existen solo en el primer conjunto y excluye los elementos presentes en ambos conjuntos.

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)

Producción:

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

La complejidad temporal y espacial de todos los métodos es la misma:

Complejidad de tiempo: O(n)

Complejidad espacial: O(n) -> depende de la longitud de las listas

Publicación traducida automáticamente

Artículo escrito por akashjha2671 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *