2016-12-21 3 views
0

私は作成した辞書で最も一般的な単語を取得しようとしています。 私は、答えがソートされた関数と要素の数を求めるために[:n]を使っているのを見ました。辞書のpythonのトップ要素を取得

私の問題は私の辞書は、私が見たものと少し異なることである - それはそのようなものだ:

[{"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"}] 

ので、この例では、オバマ氏は、27時間のアンドリューボーナー20と税2に言及している - ので、私はしたいと言うことができますトップ5の最も一般的な単語を取得するには、どうすればよいですか?

+0

することを忘れないでください。 –

答えて

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)] 

あなたは辞書を持っていない、あなたは辞書のリストを持っているimport itertools, collections

+0

私はこのエラーを受け取ります TypeError:文字列のインデックスは整数でなければなりません – user3488862

+0

@ user3488862:私の答えはPython REPLからまっすぐなので、あなたの質問には実際のデータが表示されません – inspectorG4dget

関連する問題