Python - diccionario con la cantidad de apariciones de cada palabra

 
Vista:
Imágen de perfil de Angeljonh

diccionario con la cantidad de apariciones de cada palabra

Publicado por Angeljonh (29 intervenciones) el 06/11/2016 05:47:57
Como puedo hacer esto en python que devuelva un diccionario con la cantidad de apariciones de cada palabra en la cadena. Por ejemplo, si recibe "Hola que hace que no hago" debe devolver:
'que': 2, 'hola': 1, 'hace': 1, 'no': 1, 'hago': 1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos
Val: 77
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

diccionario con la cantidad de apariciones de cada palabra

Publicado por Jorge De Los Santos (54 intervenciones) el 06/11/2016 06:17:20
Creo que una manera sencilla sería usando la sintaxis de diccionarios por compresión:

1
2
3
4
5
>>> s = "Hola que hace que no hago"
>>> palabras = s.split()
>>> d = {k:palabras.count(k) for k in list(set(palabras))}
>>> print(d)
{'hace': 1, 'no': 1, 'que': 2, 'Hola': 1, 'hago': 1}




Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de angeljonh

diccionario con la cantidad de apariciones de cada palabra

Publicado por angeljonh (29 intervenciones) el 06/11/2016 19:13:36
muchas gracias amigo, gracias por tu ayuda me sirvio de mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de angeljonh

diccionario con la cantidad de apariciones de cada palabra

Publicado por angeljonh (29 intervenciones) el 06/11/2016 20:05:36
amigo entonces como puedo de ese pseudocodigo:

hacer una función que reciba un texto y para cada carácter presente en el texto
devuelva la cadena más larga en la que se encuentra ese carácter.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jorge De Los Santos
Val: 77
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

diccionario con la cantidad de apariciones de cada palabra

Publicado por Jorge De Los Santos (54 intervenciones) el 06/11/2016 21:57:51
Puedes probar con lo siguiente, es una cuestión un poquito más elaborada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def cadena_mas_larga(ls):
    """ Función auxiliar que devuelve la cadena más larga de una lista """
    ls.sort(cmp=lambda x,y: len(x)-len(y), reverse=True)
    return ls[0]
 
def cadena_mas_larga_por_caracter(s):
    """
    Devuelve un diccionario con la palabra más larga que contiene 
    a cada uno de los caracteres de s
    """
    caracteres = list(set(s.replace(" ",""))) # Caracteres únicos
    d = dict() # Diccionario para guardar caracter: cadena_mas_larga
    temp = [] # Lista para almacenar palabras en las que aparece un caracter
    for car in caracteres:
        for plb in s.split():
            if car in plb:
                temp.append(plb)
        d[car] = cadena_mas_larga(temp)
        temp = []
    return d
 
if __name__ == "__main__":
    s = "hola que hace que no hago"
    print(cadena_mas_larga_por_caracter(s))



Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de angel

diccionario con la cantidad de apariciones de cada palabra

Publicado por angel (29 intervenciones) el 08/11/2016 19:48:21
teniendo tu estructura como la mando a llamar para q me de lo q necesito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

diccionario con la cantidad de apariciones de cada palabra

Publicado por Leonardo Rodriguez (1 intervención) el 02/08/2020 00:12:11
Marca un error, ya que no acepta a cmd ya que dice que es una palabra invalida para sort, si podrias ayudarme con ello, te lo agradeceria montones!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar