Ich habe einen Zähler, den ich in der folgenden Art und Weise sortieren mag:Wie sortieren Zähler nach alphabetischer Reihenfolge dann von Wert, um in Python
Counter({'M': 9, 'L': 5, 'P': 5, 'S': 2, 'd': 1, 'T': 1})
, wenn ich meinen Code zu verwenden, hier ist, was es gibt mir :
Counter({'M': 9, 'P': 5, 'L': 5, 'S': 2, 'T': 1, 'd': 1})
habe ich versucht, die Funktion sortiert(), aber wenn ich es verwende, ist der Rückgabewert nicht mehr ein Zähler.
Hier ist mein Code, wie würdest du das tun?
def most_encountered_letters(dictionnary):
counter = collections.Counter()
for line in dictionnary:
words = line.split(',')[0].split(' ')
for word in words:
counter[word[0]] += 1
print(counter)
return counter.most_common(5)
Ein 'Counter' ist eine' Dict'-Unterklasse, also per Definition unsortiert, und wenn Sie versuchen, 'sorted()' zu verwenden, muss eine Nicht-'Dict'-Klasse zurückgegeben werden. Sie könnten das Ergebnis in ein ['OrderedDict'] (https://stackoverflow.com/a/9001529/1270789) verschieben. Ich nehme an, aber meine Frage ist: "Warum willst du sortieren?", Da dein tatsächliches Problem vielleicht besser auf andere Weise angegangen werden könnte. Schließlich, hier ist [viele Arten zu sortieren] (https://wiki.python.org/moin/HowTo/Sorting). BTW, Python 2.x oder 3.x? –
Es ist nicht möglich, ein 'Dict' in Python zu sortieren, die einzige Möglichkeit ist der Link https://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value?page=1&tab= votes # tab-top – Wen
_Be präzise_! Ihre Nicht-Antwort hat Ihre Frage drastisch geändert und beide Antworten ungültig gemacht. –