cindyH1 hat geschrieben:wo ist der fehler?
Soweit ich es sehe, ist ein Fehler zum Beispiel, dass du die Variable 'i' gar nicht änderst. Generell versucht man in Python nach Möglichkeit Konstrukte zu vermeiden, wo manuell die Länge eines Elements ermittelt und eine Variable in/dekrementiert wird, da man meistens direkt iterieren kann.
Deinen Ansatz könnte man zum Beispiel so umschreiben:
Code: Alles auswählen
def get_frequencies(text):
result = dict()
chars = [char for char in text if not char == ' ']
for char in set(chars):
result[char] = text.count(char)
return result
Oder Kürzer:
Code: Alles auswählen
def get_frequencies(text):
chars = [char for char in text if not char == ' ']
return {char: text.count(char) for char in set(chars)}
Weiterhin finde ich die Verwendung von str.count nicht so gut. Ich habe es nicht gemessen, aber wahrscheinlich wäre es effizienter, selbst zu zählen, da ja der String für jeden Buchstaben auf's Neue durchsucht wird. Oder wenn du eh schon solche "Bequemlichkeits-Funktionalitäten" wie 'count' verwendest, vielleicht doch mal in das Collections-Modul zu schauen...