Buenos días!
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 originaldef 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.