A veces, mientras trabajamos con Python, podemos tener un problema en el que necesitamos calcular la frecuencia de los caracteres consecutivos hasta que cambia el carácter. Esto puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Uso de la comprensión de listas + groupby()
Esta es una de las abreviaturas con la ayuda de la cual se puede realizar esta tarea. En esto, empleamos groupby() para agrupar consecutivos para realizar cálculos de frecuencia.
# Python3 code to demonstrate working of # Consecutive characters frequency # Using list comprehension + groupby() from itertools import groupby # initializing string test_str = "geekksforgggeeks" # printing original string print("The original string is : " + test_str) # Consecutive characters frequency # Using list comprehension + groupby() res = [len(list(j)) for _, j in groupby(test_str)] # printing result print("The Consecutive characters frequency : " + str(res))
The original string is : geekksforgggeeks The Consecutive characters frequency : [1, 2, 2, 1, 1, 1, 1, 3, 2, 1, 1]
Método #2: Usando regex
Otra forma de resolver este problema es usando regex. En esto, empleamos la técnica de búsqueda de caracteres regex y encontramos el conteo usando len().
# Python3 code to demonstrate working of # Consecutive characters frequency # Using regex import re # initializing string test_str = "geekksforgggeeks" # printing original string print("The original string is : " + test_str) # Consecutive characters frequency # Using regex res = [len(sub.group()) for sub in re.finditer(r'(.)\1*', test_str)] # printing result print("The Consecutive characters frequency : " + str(res))
The original string is : geekksforgggeeks The Consecutive characters frequency : [1, 2, 2, 1, 1, 1, 1, 3, 2, 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