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