1 svar
154 visningar
dip365 7
Postad: 3 feb 18:33

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?

Laguna 30471
Postad: 3 feb 21:28

Du tittar aldrig på out[i] efter att du har satt det, så bara det sista radnumret blir kvar.

Svara
Close