Python – Frecuencia de sufijo de substring

Dada una string y una substring, cuente todos los sustitutos de la string que se pueden usar para completar la substring.

Entrada : test_str = “Gfg es bueno. Gfg es bueno. Gfg es mejor. Gfg es bueno.”, substr = “Gfg es”
Salida : {‘bueno’: 3, ‘mejor’: 1}
Explicación : bueno aparece 3 veces como sufijo después de la substring en la string, por lo tanto, 3. y así sucesivamente.

Entrada : test_str = “Gfg es bueno. Gfg es bueno. Gfg es bueno. Gfg is good .”, substr = “Gfg is”
Salida : {‘good’: 4}
Explicación : good aparece 4 veces como sufijo después de la substring en la string, por lo tanto, 4. y así sucesivamente.

Método #1: Usar regex() + defaultdict() + loop

Esta es una de las formas en que se puede realizar esta tarea. En esto, construimos expresiones regulares para obtener todos los elementos coincidentes para la substring. Luego verifique todo lo posible con ocurrencias en String, conteo de frecuencia usando defaultdict().

Python3

# Python3 code to demonstrate working of
# Substring substitutes frequency
# Using regex() + defaultdict() + loop
from collections import defaultdict
import re
  
# initializing string
test_str = "Gfg is good . Gfg is best . Gfg is better . Gfg is good ."
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing substring
substr = "Gfg is"
  
# initializing regex
temp = re.findall(substr + " (\w+)", test_str, flags = re.IGNORECASE)
  
# adding values to form frequencies
res = defaultdict(int)
for idx in temp:
   res[idx] += 1
  
# printing result
print("Frequency of replacements : " + str(dict(res)))
Producción

The original string is : Gfg is good . Gfg is best . Gfg is better . Gfg is good .
Frequency of replacements : {'good': 2, 'best': 1, 'better': 1}

Método #2: Usando Counter() + regex()

Esta es otra forma más en la que se puede realizar esta tarea. En esto, calculamos la frecuencia de los elementos usando Counter().

Python3

# Python3 code to demonstrate working of
# Substring substitutes frequency
# Using Counter() + regex()
import re
from collections import Counter
  
# initializing string
test_str = "Gfg is good . Gfg is best . Gfg is better . Gfg is good ."
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing substring
substr = "Gfg is"
  
# initializing regex
temp = re.findall(substr + " (\w+)", test_str, flags = re.IGNORECASE)
  
# adding values to form frequencies
res = dict(Counter(temp))
  
# printing result
print("Frequency of replacements : " + str(res))
Producción

The original string is : Gfg is good . Gfg is best . Gfg is better . Gfg is good .
Frequency of replacements : {'good': 2, 'best': 1, 'better': 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 *