Python | Frecuencia de substring entre mayúsculas

A veces, mientras trabajamos con strings, podemos tener un problema en el que tenemos que encontrar substrings que se encuentran entre mayúsculas y encontrar sus frecuencias. Este es un problema muy singular y tiene menos aplicaciones. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar groupby()+ expresión regular + bucle
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, usamos groupby() para agrupar las substrings extraídas de expresiones regulares. Y todo se compila usando loop.

# Python3 code to demonstrate working of 
# Substring Frequency between Uppercases
# Using groupby() + regex + loop
from itertools import groupby
import re
  
# initializing string
test_str = "GeEkSForGeEkS"
  
# printing original string
print("The original string is : " + test_str)
  
# Substring Frequency between Uppercases
# Using groupby() + regex + loop
res = {}
for i, j in groupby(re.findall(r'[A-Z][a-z]*\d*', test_str)):
    res[i] = res[i] + 1 if i in res.keys() else 1 
  
# printing result 
print("The grouped Substring Frequency : " + str(res)) 
Producción :

The original string is : GeEkSForGeEkS
The grouped Substring Frequency : {'For': 1, 'S': 2, 'Ek': 2, 'Ge': 2}

Método #2: Uso de la comprensión del diccionario +sorted() + groupby() + regex
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En este, la tarea de acumulación se realiza utilizando la comprensión de diccionario.

# Python3 code to demonstrate working of 
# Substring Frequency between Uppercases
# Using dictionary comprehension + sorted() + groupby() + regex
from itertools import groupby
import re
  
# initializing string
test_str = "GeEkSForGeEkS"
  
# printing original string
print("The original string is : " + test_str)
  
# Substring Frequency between Uppercases
# Using dictionary comprehension + sorted() + groupby() + regex
res = {i : len(list(j)) for i, j in groupby(
        sorted(re.findall(r'[A-Z][a-z]*\d*', test_str))) }
  
# printing result 
print("The grouped Substring Frequency : " + str(res)) 
Producción :

The original string is : GeEkSForGeEkS
The grouped Substring Frequency : {'For': 1, 'S': 2, 'Ek': 2, 'Ge': 2}

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 *