Python | Eliminación de todos los elementos duplicados consecutivos en la lista

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

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

Deja una respuesta

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