Escribir una función que cuente las palabras que hay en una frase y las devuelva dentro de un diccionario. También tiene que devolver una lista con las palabras que aparecen más de una vez. Por ejemplo si se le pasa la frase: 'La caracola está enterrada al lado de otra caracola de color' la función debe devolver el diccionario y la lista siguientes:
{'La': 1, 'caracola': 2, 'está': 1, 'enterrada': 1, 'al': 1, 'lado': 1, 'de': 2, 'otra': 1, 'color': 1}
['caracola', 'de']
In [2]:
def contar_palabras(frase):
''' Función que recibe una frase y devuelve la frecuencia de las palabras en la frase y las palabras que se repiten.
Parámetros:
- frase: Es una cadena de caracteres.
Devuelve: Una tupla con un diccionario con las palabras y su frecuencia, y una lista con las palabras que se repiten.
'''
# Dividimos la frase por el espacio en blanco y guardamos las palabras en una lista.
palabras = frase.strip().split()
# Creamos un diccionario vacío para guardar las frecuencias de las palabras.
frecuencias = {}
# Recorremos la lista de palabras y vamos contando sus frecuencias.
for palabra in palabras:
# Si la palabra no está todavía en le diccionario, la añadimos con frecuencia 0.
if palabra not in frecuencias:
frecuencias[palabra] = 0
# Incrementamos la frecuencia de la palabra en el diccionario.
frecuencias[palabra] += 1
# Creamos una lista vacía para guardar las palabras repetidas.
repetidas=[]
# Recorremos el diccionario de frecuencias
for clave, valor in frecuencias.items():
# Si la frecuencia de una palabra es mayor que 1 la añadimos a la lista.
if valor > 1: repetidas.append(clave)
# Devolvemos el diccionario de frecuencias y la lista de palabras repetidas.
return frecuencias, repetidas
# Ejemplo
freq, rep = contar_palabras('La caracola está enterrada al lado de otra caracola de color')
print('Frecuencia de palabras:', freq)
print('Palabras repetidas: ', rep)
In [5]:
def contar_palabras(frase):
''' Función que recibe una frase y devuelve la frecuencia de las palabras en la frase y las palabras que se repiten.
Parámetros:
- frase: Es una cadena de caracteres.
Devuelve: Una tupla con un diccionario con las palabras y su frecuencia, y una lista con las palabras que se repiten.
'''
# Dividimos la frase por el espacio en blanco y guardamos las palabras en una lista.
palabras = frase.strip().split()
# Recorremos la lista de palabras, contamos sus frecuencias y las añadimos a un diccionario.
frecuencias = {palabra:palabras.count(palabra) for palabra in palabras}
# Recorremos el diccionario de frecuencias y generamos la lista con las palabras con frecuencia mayor que 1.
repetidas = [palabra for palabra, frecuencia in frecuencias.items() if frecuencia > 1]
# Devolvemos el diccionario de frecuencias y la lista de palabras repetidas.
return frecuencias, repetidas
# Ejemplo
freq, rep = contar_palabras('La caracola está enterrada al lado de otra caracola de color')
print('Frecuencia de palabras:', freq)
print('Palabras repetidas: ', rep)
In [ ]: