En Python, generalmente deseamos eliminar los elementos duplicados, pero a veces, para varios casos de uso específicos, necesitamos eliminar solo los elementos repetidos en sucesión. Esta es una tarea bastante fácil y tener una forma abreviada de hacerlo puede ser útil. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar la groupby()
comprensión de lista +
Usando la función groupby, podemos agrupar los elementos que aparecen juntos como uno solo y podemos eliminar todos los duplicados en sucesión y solo dejar que un elemento esté en la lista.
# Python3 code to demonstrate # removing consecutive duplicates # using groupby() + list comprehension from itertools import groupby # initializing list test_list = [1, 4, 4, 4, 5, 6, 7, 4, 3, 3, 9] # printing original list print ("The original list is : " + str(test_list)) # using groupby() + list comprehension # removing consecutive duplicates res = [i[0] for i in groupby(test_list)] # printing result print ("The list after removing consecutive duplicates : " + str(res))
The original list is : [1, 4, 4, 4, 5, 6, 7, 4, 3, 3, 9] The list after removing consecutive duplicates : [1, 4, 5, 6, 7, 4, 3, 9]
Método n.º 2: uso zip_longest()
de la comprensión de lista +
Esta función se puede usar para mantener el elemento y eliminar los elementos sucesivos con el uso de cortes. La función zip_longest hace la tarea de juntar los valores en una lista.
# Python3 code to demonstrate # removing consecutive duplicates # using zip_longest()+ list comprehension from itertools import zip_longest # initializing list test_list = [1, 4, 4, 4, 5, 6, 7, 4, 3, 3, 9] # printing original list print ("The original list is : " + str(test_list)) # using zip_longest()+ list comprehension # removing consecutive duplicates res = [i for i, j in zip_longest(test_list, test_list[1:]) if i != j] # printing result print ("List after removing consecutive duplicates : " + str(res))
The original list is : [1, 4, 4, 4, 5, 6, 7, 4, 3, 3, 9] List after removing consecutive duplicates : [1, 4, 5, 6, 7, 4, 3, 9]
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