/ / Wie erstelle ich ein Wörterbuch mit Stringlängen mit einer for-Schleife? - Python, String, Liste, Wörterbuch, Satz

Wie man ein Wörterbuch der Schnurlängen unter Verwendung einer for-Schleife baut? - Python, String, Liste, Wörterbuch, Satz

Ich bin ziemlich neu in Python, aber ich kenne die GrundlagenBefehle. Ich versuche, eine for-Schleife zu erstellen, die bei Angabe einer Satzliste einen Schlüssel für die Länge jedes Satzes hinzufügt. Der Wert jedes Schlüssels wäre die Häufigkeit dieser Satzlänge in der Liste, so dass das Format ungefähr so ​​aussehen würde:

dictionary = {length1:frequency, length2:frequency, etc.}

Ich kann scheinbar keine Antworten finden, die zuvor beantwortet wurdenFragen, die sich speziell mit diesem Thema befassen - Erstellen von Schlüsseln mithilfe von Basisfunktionen und Ändern des Werts des Schlüssels anhand der Häufigkeit dieses Ergebnisses.

dictionary = {}
for i in sentences:
dictionary[len(i.split())] += 1

Wenn ich versuche, den Code auszuführen, erhalte ich folgende Meldung:

Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
dictionary[len(i.split())] += 1
KeyError: 27

Jede Hilfe bei der Korrektur meines Codes und eine Erklärung, wo ich mich geirrt habe, wäre sehr dankbar!

Antworten:

2 für die Antwort № 1

Ich denke, das löst dein Problem in Python 3:

sentences ="Hi my name is xyz"
words = sentences.split()
dictionary ={}
for i in words:
if len(i) in dictionary:
dictionary[len(i)]+=1
else:
dictionary[len(i)] = 1
print(dictionary)

Ausgabe:

{2: 3, 3: 1, 4: 1}

Im Wörterbuch müssen Sie dem Schlüssel zuerst einen Wert zuweisen, den Sie dann nur für weitere Berechnungen verwenden können. Andernfalls gibt es eine alternative Verwendung defaultdict um jedem Schlüssel einen Standardwert zuzuweisen.

Hoffe das hilft.