Las formas de encontrar la diferencia de dos listas se han discutido anteriormente, pero a veces, necesitamos eliminar solo las ocurrencias específicas de los elementos que ocurren en otra lista. Analicemos ciertas formas en que esto se puede realizar.
Método n.º 1: usarcollections.Counter()
el método Contador se puede usar para obtener la ocurrencia exacta de los elementos en la lista y, por lo tanto, se puede restar selectivamente en lugar de usar el conjunto e ignorar el conteo de elementos por completo. Luego se puede realizar la resta para obtener la ocurrencia real.
# Python3 code to demonstrate # Difference of list including duplicates # Using collections.Counter() from collections import Counter # initializing lists test_list1 = [1, 3, 4, 5, 1, 3, 3] test_list2 = [1, 3, 5] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # Using collections.Counter() # Difference of list including duplicates res = list((Counter(test_list1) - Counter(test_list2)).elements()) # print result print("The list after performing the subtraction : " + str(res))
The original list 1 : [1, 3, 4, 5, 1, 3, 3] The original list 2 : [1, 3, 5] The list after performing the subtraction : [1, 3, 3, 4]
Método #2: Usarmap() + lambda + remove()
La combinación de las funciones anteriores se puede usar para realizar esta tarea en particular. La función map se puede utilizar para vincular la función a todos los elementos y eliminar elimina la primera vez que aparece. Por lo tanto, no se elimina repetidamente. Funciona solo con Python2.
# Python code to demonstrate # Difference of list including duplicates # Using map() + lambda + remove() # initializing lists test_list1 = [1, 3, 4, 5, 1, 3, 3] test_list2 = [1, 3, 5] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # Using map() + lambda + remove() # Difference of list including duplicates res = map(lambda x: test_list1.remove(x) if x in test_list1 else None, test_list2) # print result print("The list after performing the subtraction : " + str(test_list1))
The original list 1 : [1, 3, 4, 5, 1, 3, 3] The original list 2 : [1, 3, 5] The list after performing the subtraction : [1, 3, 3, 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