El problema de encontrar diferencias entre listas, es decir, eliminar elementos que aparecen en una lista y no en otra, ya se ha comentado anteriormente. Pero el uso de conjuntos ignora los duplicados y, a veces, necesitamos eliminar los elementos exactos que aparecen en las listas. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso del bucle
Esta es la forma bruta en la que se puede realizar esta tarea. En esto, extraemos los elementos en una forma en la que eliminamos elementos cada vez y rompemos el ciclo para eliminar un elemento a la vez.
# Python3 code to demonstrate # Difference of List keeping duplicates # using loop # Initializing lists test_list1 = [4, 5, 7, 4, 3] test_list2 = [7, 3, 4] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Difference of List keeping duplicates # using loop for ele in test_list2: for sub in test_list1: if ele == sub: test_list1.remove(sub) break # printing result print ("List after performing difference : " + str(test_list1))
The original list 1 is : [4, 5, 7, 4, 3] The original list 2 is : [7, 3, 4] List after performing difference : [5, 4]
Método #2: Usarpop() + list comprehension + index()
Esta tarea también se puede realizar usando una combinación de las funcionalidades anteriores. En esto, solo iteramos la lista usando la comprensión de la lista y eliminamos el elemento usando index() y pop().
# Python3 code to demonstrate # Difference of List keeping duplicates # using pop() + list comprehension + index() # Initializing lists test_list1 = [4, 5, 7, 4, 3] test_list2 = [7, 3, 4] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Difference of List keeping duplicates # using pop() + list comprehension + index() [test_list1.pop(test_list1.index(idx)) for idx in test_list2] # printing result print ("List after performing difference : " + str(test_list1))
The original list 1 is : [4, 5, 7, 4, 3] The original list 2 is : [7, 3, 4] List after performing difference : [5, 4]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA