Aquí vuelvo con otro problema a la hora de ejecutar un programa muy sencillo en Python.
El programa es el siguiente:
Código Python:
Ver original
def diccionario(fichero): d=dict() for linea in fichero: for palabra in linea.split(): d[palabra]=d.get(palabra,0)+1 return d def lista(fichero): l=list() for linea in fichero: for palabra in linea.split(): i=0 while i<(len(l)): if l[i][0]==palabra: break i+=1 if i==len(l): l.append((palabra,1)) else: l[i]=(palabra,l[i][1]+1) return l fichero=open(input("Introducir el nombre del fichero: "),"r") l=lista(fichero) d=diccionario(fichero) print (d,l)
Hasta este punto el programa simplemente tendría que abrir un fichero y devolver dos histogramas. Uno en modo de lista y otro a modo de diccionario.
El problema es que solo me imprime el histograma de la función que se ejecuta primero, en ese caso lista(fichero). Me devuelve un diccionario vacío y el histograma completo a modo de lista.
He probado a hacer que se ejecute primero diccionario(fichero) y después lista(fichero) y lo que ocurre es que me devuelve el histograma a modo de diccionario y una lista vacía.
¿Por qué solo se ejecuta correctamente la primera función en ser corrida?
Un saludo y gracias de antemano.