Lägga till element i en lista som värde i en uppslagstabell
Har problem med följande kodavsnitt:
def index_text(filename):
out = {}
n_lines = 0
with open(filename) as h:
temp = []
for line in h:
line.lower()
words = line.split()
for i in words:
if i in out:
temp.append(n_lines)
out[i] = temp
# print('i',i,'in out, temp=',temp)
else:
temp.append(n_lines)
# print('i',i,' not in out, temp=',temp)
out[i] = temp
temp = []
n_lines += 1
return out
Funktionen ska alltså rendera en uppslagstabell med orden i en textfil som nycklar och sedan som värde för varje nyckel ska det vara en lista med radnumren som orden förekommer på. Men jag får bara ut ett element i listan (sista radnumret ordet förekommer på). Var gör jag fel? Misstänker att det är någonting med där temp nollställs (temp = []). Eller är det något med temp.append?
Du tittar aldrig på out[i] efter att du har satt det, så bara det sista radnumret blir kvar.