2016-12-21 3 views
0

Ich versuche, die meisten Wörter in einem Wörterbuch, das ich erstellt habe, zu bekommen. Ich las darüber und ich sah, dass die Antwort sortierte Funktion und [: n] verwendet, um nach der Anzahl der Elemente zu fragen.get top element für Wörterbuch Python

mein Problem ist, dass mein Wörterbuch zu einem bisschen anders ist, was ich sah - es das ist, wie:

[{"count":27,"stem":"obama","term":"obama"},{"count":20,"stem":"boehner","term":"boehner"},{"count":4,"stem":"tax","term":"tax"}, 
{"count":3,"stem":"daley","term":"daley"},{"count":3,"stem":"couldn","term":"couldn"},{"count":2,"stem":"trillion","term":"trillion"}] 

so in diesem Beispiel ist obama 27 Mal boehner 20 und Steuer 2 erwähnen - können so sagen, ich will um die 5 häufigsten Wörter zu bekommen, wie mache ich das?

+0

Sie, nicht ein Wörterbuch haben haben Sie eine Liste von Wörterbüchern. –

Antwort

2
In [39]: L = [{"count":27,"stem":"obama","term":"obama"},{"count":20,"stem":"boehner","term":"boehner"},{"count":4,"stem":"tax","term":"tax"}, 
{"count":3,"stem":"daley","term":"daley"},{"count":3,"stem":"couldn","term":"couldn"},{"count":2,"stem":"trillion","term":"trillion"}] 

In [40]: counts = collections.Counter(itertools.chain.from_iterable([d['term']]*d['count'] for d in L)) 

In [41]: counts.most_common(5) 
Out[41]: [('obama', 27), ('boehner', 20), ('tax', 4), ('daley', 3), ('couldn', 3)] 

Vergessen Sie nicht zu import itertools, collections

+0

Ich bekomme diesen Fehler TypeError: String-Indizes müssen Ganzzahlen sein – user3488862

+0

@ user3488862: dann zeigt Ihre Frage nicht die tatsächlichen Daten, mit denen Sie arbeiten, weil meine Antwort direkt aus der Python REPL ist – inspectorG4dget