Was ist der beste Weg, um eine Liste / ein Tupel in ein Diktat umzuwandeln, wo die Schlüssel die unterschiedlichen Werte der Liste sind und die Werte die Frequenzen dieser verschiedenen Werte sind?
Mit anderen Worten:
%Vor%(Ich musste so oft wie oben beschrieben vorgehen. Gibt es etwas in der Standardbibliothek, das das für Sie tut?)
BEARBEITEN:
Jacob Gabrielson weist darauf hin, dass etwas hereinkommt die Standardbibliothek für den Zweig 2.7 / 3.1
Ich finde, dass es am einfachsten zu verstehen ist (obwohl es möglicherweise nicht der effizienteste Weg ist):
%Vor% Nur ein Hinweis, dass ab Python 2.7 / 3.1 diese Funktionalität in das collections
-Modul eingebaut wird, siehe diesen Fehler für weitere Informationen. Hier ist das Beispiel aus den Versionshinweisen :
Das ist ein Greuel, aber:
%Vor%Ich kann mir keinen Grund vorstellen, warum man diese Methode gegenüber S.Lott's wählt, aber wenn jemand darauf hinweist, könnte es auch ich sein. :)
Ich entschied mich, die vorgeschlagenen Versionen zu testen. Ich fand die collections.Counter
, wie von Jacob Gabrielson vorgeschlagen, die schnellste, gefolgt von der defaultdict
-Version von SLott.
Hier sind meine Codes: aus Sammlungen importieren defaultdict aus Sammlungen importieren Counter
%Vor%Und meine Ergebnisse:
%Vor%Lassen Sie mich wissen, wie ich die Analyse verbessern kann.
Tags und Links python