Próbuję stworzyć funkcję, która będzie pobierać znak i histogram i dodawać instancję tego znaku do histogramu. Mój kod jest jak dotąd:
def add_to_hist(character, histogram):
"""Takes a character and a histogram and adds an occurrence
of that character to the histogram.
string, list -> list"""
for c in character:
if c not in histogram:
histogram[c] = 1
else:
histogram[c] = histogram[c]+1
return histogram
Za każdym razem, gdy próbuję uruchomić kod, który zwraca TypeError: list indices must be integers, not str
. Czy ktoś może mi to pomóc? Mój kod może być całkowicie błędny, jestem w tym bardzo nowy. Z góry dziękuję!
Odpowiedzi:
0 dla odpowiedzi № 1Ten błąd wynika z tego, że próbujesz przypisać klucz do a list
, i list
może być indeksowany tylko przez intengera list[0]
, list[1]
, wkrótce. Więc, hinstogram
musi być dict
ani list
Upewnij się, że dzwonisz add_to_hist
metoda, przekazać dyktat. Możesz w ten sposób zainicjować dyktat:
histogram = {}
ZAKTUALIZOWANE
Na podstawie Twojego komentarza nie możesz przejść [["B",1],["a",3],["n",2],["!",1]]
jako param do add_to_his
, ponieważ to nie jest dyktat. Powinno być {"B":1,"a":3,"n":2,"!":1}