Python | Elementos restantes consecutivos en la lista

A veces, mientras trabajamos con la lista de Python, podemos tener un problema en el que necesitamos obtener el recuento restante de elementos consecutivos (incluido el actual), para tomar ciertas decisiones de antemano. Esto puede ser un subproblema potencial de muchos concursos de programación competitivos. Analicemos una forma abreviada que se puede aplicar para resolver este problema.

Método: Usorange() + from_iterable() + groupby() + list comprehension
Esta tarea se puede realizar y resolver mediante una combinación de las funciones anteriores. En esto, primero usamos la función groupby para formar grupos y convertirlos en rangos inversos usando range(). Todo esto se convierte en generador para evitar la creación de una lista anidada y luego se obtiene la lista final usando from_iterable().

# Python3 code to demonstrate working of
# Consecutive remaining elements in list
# using range() + from_iterable() + groupby() + list comprehension
from itertools import chain, groupby
  
# initialize list
test_list = [4, 4, 5, 5, 5, 1, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Consecutive remaining elements in list
# using range() + from_iterable() + groupby() + list comprehension
temp = (range(len(list(j)), 0, -1) for i, j in groupby(test_list))
res = list(chain.from_iterable(temp))
  
# printing result
print("Consecutive remaining elements list : " + str(res))
Producción :

The original list is : [4, 4, 5, 5, 5, 1, 1, 2, 4]
Consecutive remaining elements list : [2, 1, 3, 2, 1, 2, 1, 1, 1]

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 *