Python – Frecuencia de Caracteres Sucesivos

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *