Python | Diferencia de dos listas incluyendo duplicados

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))
Producción :

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))
Producción :

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

Deja una respuesta

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