A veces, mientras trabajamos con strings de Python, podemos tener un problema en el que necesitamos encontrar la frecuencia del siguiente carácter de una palabra en particular en la string. Este es un problema bastante único y tiene el potencial de aplicación en la programación diaria y el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_str = ‘los geeks son para geeksforgeeks’, que_word = «geek»
Salida : {‘s’: 3}Entrada : test_str = ‘geek’, que_word = «geek»
Salida : {}
Método n.º 1: Usar bucle +count() + re.findall()
La combinación de los métodos anteriores constituye el método de fuerza bruta para realizar esta tarea. En esto, realizamos la tarea de contar usando count(), y el carácter se busca usando findall().
# Python3 code to demonstrate working of # Successive Characters Frequency # Using count() + loop + re.findall() import re # initializing string test_str = 'geeksforgeeks is best for geeks. A geek should take interest.' # printing original string print("The original string is : " + str(test_str)) # initializing word que_word = "geek" # Successive Characters Frequency # Using count() + loop + re.findall() temp = [] for sub in re.findall(que_word + '.', test_str): temp.append(sub[-1]) res = {que_word : temp.count(que_word) for que_word in temp} # printing result print("The Characters Frequency is : " + str(res))
The original string is : geeksforgeeks is best for geeks. A geek should take interest. The Characters Frequency is : {'s': 3, ' ': 1}
Método #2: UsoCounter() + list comprehension + re.findall()
La combinación de las funciones anteriores se utiliza para realizar la siguiente tarea. En esto, usamos Counter() en lugar de count() para resolver este problema. Funciona con versiones más recientes de Python.
# Python3 code to demonstrate working of # Successive Characters Frequency # Using Counter() + list comprehension + re.findall() from collections import Counter import re # initializing string test_str = 'geeksforgeeks is best for geeks. A geek should take interest.' # printing original string print("The original string is : " + str(test_str)) # initializing word que_word = "geek" # Successive Characters Frequency # Using Counter() + list comprehension + re.findall() res = dict(Counter(re.findall(f'{que_word}(.)', test_str, flags=re.IGNORECASE))) # printing result print("The Characters Frequency is : " + str(res))
The original string is : geeksforgeeks is best for geeks. A geek should take interest. The Characters Frequency is : {'s': 3, ' ': 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