Ich nehme eine Textdatei als Eingabe und erstelle eine Funktion, die zählt, welches Wort am häufigsten vorkommt. Wenn zwei oder mehr Wörter am häufigsten vorkommen und gleich sind, drucke ich alle diese Wörter.TypeError: nicht hashbarer Typ: 'list' - Erstellen einer Häufigkeitsfunktion
def wordOccurance(userFile):
userFile.seek(0)
line = userFile.readline()
lines = []
while line != "":
if line != "\n":
line = line.lower() # making lower case
line = line.rstrip("\n") # cleaning
line = line.rstrip("?") #cleans the whole docoument by removing "?"
line = line.rstrip("!") #cleans the whole docoument by removing "!"
line = line.rstrip(".") #cleans the whole docoument by removing "."
line = line.split(" ") #splits the texts into space
lines.append(line)
line = userFile.readline() # keep reading lines from document.
words = lines
wordDict = {} #creates the clean word Dic, from above
for word in words: #
if word in wordDict.keys():
wordDict[word] = wordDict[word] + 1
else:
wordDict[word] = 1
largest_value = max(wordDict.values())
for k in wordDict.keys():
if wordDict[k] == largest_value:
print(k)
return wordDict
Bitte helfen Sie mir bei dieser Funktion.
Welche Zeile löst den Fehler aus? Irgendwann (vielleicht bei "wordDict [word] = 1") versuchen Sie eine Liste als Wörterbuchschlüssel zu verwenden, was nicht erlaubt ist. – elethan
Diese Zeile gibt mir die Fehlermeldung: Wenn Wort in WordDict.keys(): –
Ich kann nicht auf irgendeine Weise denken, dass Sie diesen Fehler von dieser Zeile erhalten könnten. Funktioniert die Lösung, die ich gepostet habe, für dich? Wenn nicht, könnten Sie bitte den vollständigen Traceback von Ihrem Fehler in Ihrer Frage veröffentlichen, damit ich Ihnen besser helfen kann? – elethan