Ich habe eine Textdatei namens textf, die ungefähr so aussieht:
%Vor%Ich möchte eine Häufigkeitszählung für jeden Buchstaben in der Textdatei machen, aber ich möchte es mit der Bedingung, dass, wenn ein Buchstabe nicht im Text erscheint, er einen Schlüssel haben sollte: Wert-Paar mit Wert 0. Zum Beispiel wenn z war nicht im Text sollte es so etwas wie 'z' aussehen: 0 usw. für alle Buchstaben (a bis z). Ich habe den folgenden Code gemacht:
%Vor%Aber die Ausgabe sieht ungefähr so aus:
%Vor% Ich versuche es so zu machen, dass die Leerzeichenanzahl ' ': 110
nicht angezeigt wird und dass ich alle Buchstaben (az) habe und wenn der Buchstabe nicht im Text erscheint, dass mein Ergebnis etwas wie 'n': 0
und bald. Irgendwelche Ideen oder Vorschläge, wie ich das möglich machen könnte?
Eine Möglichkeit, dies zu tun, besteht darin, aus Ihrem Counter ein normales Diktat zu machen, indem Sie die Kleinbuchstaben als Tasten des neuen Diktats verwenden. Wir verwenden die Methode dict.get
, um einen Standardwert von Null für fehlende Buchstaben anzugeben.
Ausgabe
%Vor%Wenn Sie dies in Python 3.6+ tun, erhalten Sie den Nebeneffekt, dass das neue dict alphabetisch sortiert ist (obwohl dieses Verhalten derzeit nur ein Implementierungsdetail ist, auf das man sich nicht verlassen sollte).
Wie Benutzer2357112 in den Kommentaren erwähnt, müssen wir letter_count.get(k, 0)
nicht verwenden, da ein Counter automatisch Null zurückgibt, wenn wir versuchen, den Wert eines nicht vorhandenen Schlüssels zu lesen. Damit kann das Diktatverstehen in
Sie können Ihre Counter()
mit einem Wörterbuch initialisieren. In diesem Fall wird ein Wörterbuchverständnis verwendet, um alle Kleinbuchstaben auf Null zu initialisieren.
Die Verwendung von update()
mit letter
fügt dann zu diesen bestehenden Werten hinzu:
Ihnen geben:
%Vor%Um den Raum loszuwerden, fügen Sie ihn der Interpunktionszeichenfolge hinzu.
... dass mein Ergebnis etwas wie ...
druckt
Die anderen Antworten konzentrieren sich auf die Auswahl einer anderen Datenstruktur, aber für mich klingt es so, als ob Sie bereits die richtige Datenstruktur, Counter
, gewählt haben und das Ergebnis einfach anzeigen möchten. So etwas wie das würde tun:
Tags und Links python python-3.x