A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos seleccionar algunos de los elementos que ocurren K veces consecutivas. Este problema puede ocurrir en muchos dominios. Analicemos ciertas formas en que se puede resolver este problema.
Método n.º 1: Uso groupby()
de la comprensión de listas +
Esta tarea se puede realizar utilizando las funcionalidades anteriores. En esto, agrupamos todos los números que ocurren K consecutivamente. Iteramos la lista usando la comprensión de lista.
# Python3 code to demonstrate working of # Retain K consecutive elements # using groupby() + list comprehension from itertools import groupby # initialize list test_list = [1, 1, 4, 5, 5, 6, 7, 7, 8] # printing original list print("The original list : " + str(test_list)) # initialize K K = 2 # Retain K consecutive elements # using groupby() + list comprehension res = [i for i, j in groupby(test_list) if len(list(j)) == K] # printing result print("The K consecutive elements are : " + str(res))
The original list : [1, 1, 4, 5, 5, 6, 7, 7, 8] The K consecutive elements are : [1, 5, 7]
Método #2: Uso de la comprensión de listas +slice() + groupby()
Esta tarea también se puede realizar utilizando las funciones anteriores. En esto, solo realizamos la agrupación de manera similar a la anterior, pero la forma en que extraemos elementos consecutivos es mediante slice().
# Python3 code to demonstrate working of # Retain K consecutive elements # using groupby() + list comprehension + islice() from itertools import groupby, islice # initialize list test_list = [1, 1, 4, 5, 5, 6, 7, 7, 8] # printing original list print("The original list : " + str(test_list)) # initialize K K = 2 # Retain K consecutive elements # using groupby() + list comprehension + islice() res = [i for i, j in groupby(test_list) if len(list(islice(j, 0, K))) == K] # printing result print("The K consecutive elements are : " + str(res))
The original list : [1, 1, 4, 5, 5, 6, 7, 7, 8] The K consecutive elements are : [1, 5, 7]
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