A veces, mientras se trabaja con la lista de Python, puede ocurrir un problema al filtrar la lista para eliminar los duplicados. La solución a esto ha sido discutida antes. Pero a veces, podemos tener un problema en el que necesitamos eliminar el duplicado y el elemento en sí mismo si ocurre más de 1 seguido. Este tipo de problema puede ocurrir en la programación día a día y también en otras aplicaciones. Analicemos una abreviatura en la que se puede realizar esta tarea.
Método: Uso de la comprensión de listas +groupby() + sum()
Esta tarea se puede realizar mediante la combinación de las funciones anteriores. El primer paso es agrupar los elementos en duplicados usando groupby()
, y luego, si ocurren más de 0 veces, eliminarlos, es decir, incluir solo aquellos elementos que ocurren una vez. Esta tarea de conteo es manejada porsum()
# Python3 code to demonstrate working of # Consecutive duplicates all elements deletion in list # using list comprehension + sum() + groupby() from itertools import groupby # initialize list test_list = [1, 1, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 6] # printing original list print("The original list is : " + str(test_list)) # Consecutive duplicates all elements deletion in list # using list comprehension + sum() + groupby() res = [i for i, j in groupby(test_list) if sum(1 for x in j) < 2] # printing result print("List after consecutive duplicates elements deletion : " + str(res))
The original list is : [1, 1, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 6] List after consecutive duplicates elements deletion : [3, 5, 7, 6]
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