es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python – Conteo de frecuencia de letras en una cadena

Quiero escribir las frecuencias de las letras de cada una de mis cadenas. Mis entradas y salidas esperadas son como las siguientes.

"aaaa" -> "a4"
"abb" -> "a1b2"
"abbb cc a" -> "a1b3 c2 a1"
"bbbaaacddddee" -> "b3a3c1d4e2"
"a b" -> "a1 b1"

Encontré esta solución, pero da las frecuencias en un orden aleatorio. ¿Cómo puedo hacer esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si desea mostrar las frecuencias de cada letra en una cadena en un orden específico (como el alfabético), puede modificar ligeramente la solución en el enlace proporcionado. Aquí hay un ejemplo de implementación:

    def frecuencia_letras(cadena):
        freq = {}
        for letra in cadena:
            if letra in freq:
                freq[letra] += 1
            else:
                freq[letra] = 1
    
        # ordena el diccionario freq por clave en orden ascendente
        freq = dict(sorted(freq.items()))
    
        output = ""
        for letra, count in freq.items():
            output += f"{letra}{count}"
    
        return output
    

    Esta implementación utiliza la misma lógica que la solución original, pero agrega un paso para ordenar el diccionario freq por claves en orden ascendente usando la función sorted. Luego, la función genera la cadena de salida recorriendo los elementos del diccionario ordenado y concatenando cada letra y su cuenta en el orden deseado.

    Con esta implementación, los ejemplos de entrada y salida esperados en la pregunta producirán los siguientes resultados:

    "aaaa" -> "a4"
    "abb" -> "a1b2"
    "abbb cc a" -> "a1b3 c2"
    "bbbaaacddddee" -> "a3b3c1d4e2"
    "a   b" -> " 2a1b1"
    

Comments are closed.