Rückkehr Ausgabe des dictionary in alphabetischer Reihenfolge
Folgende code druckt das Wort in der txt-Datei und dann, wie viele Instanzen gibt es das Wort (z.B. a, 26) das problem ist, dass es nicht drucken Sie es aus in alphabetischer Reihenfolge. Jede Hilfe wäre sehr geschätzt werden
import re
def print_word_counts(filename):
s=open(filename).read()
words=re.findall('[a-zA-Z]+', s)
e=[x.lower() for x in (words)]
e.sort()
from collections import Counter
dic=Counter(e)
for key,value in dic.items():
print (key,value)
print_word_counts('engltreaty.txt')
InformationsquelleAutor der Frage user2101517 | 2013-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nur die Objekte Sortieren. Die builtin
sorted
sollte wunderbar funktionieren:Wenn Sie die drop -
e.sort()
Linie, dann sollte diese laufen in etwa die gleiche Menge an Zeit. Der Grund dafür, dass es nicht funktioniert, ist, weil die Wörterbücher basieren aufhash
Tabellen, die Shop-Artikel sind in der Reihenfolge Ihrer hash-Werte (mit einige mehr komplizierte Sachen, wenn hash-Kollisionen auftreten). Da die hashing-Funktion ist nie überall angegeben, es bedeutet, dass Sie kann nicht zählen, auf ein Wörterbuch, so dass eine Reihenfolge, in der Sie versuchen, es zu geben und der Auftrag ist die Umsetzung und der version abhängig. Für weitere einfache Fälle, diecollections
Modul hat eineOrderedDict
Unterklasse, die nicht halten, insertion um. aber das wird nicht wirklich helfen Ihnen, hier.InformationsquelleAutor der Antwort mgilson
Hinweis
Counter
ist eine Unterklasse vondict
so Sortieren, bevor Sie hinzufügen, umCounter
:nicht erreichen um.
InformationsquelleAutor der Antwort jamylak