2017-07-31 16 views
-1

l表示する辞書があります。私は15の最も一般的なものだけを表示したい。 lはlは.most_common() lはそれがうまく機能し、エラーnp.arange(len(dictionnary_new.keys()))AttributeError: 'list'オブジェクトに 'keys'属性がありません

 for t in range(z): 
      if text[t] != text2[t]: 
       d = (text[t], text2[t]) 
       dictionnary.append(d) 
       print(dictionnary) 

dictionnary_new = collections.Counter(dictionnary) 

pos = np.arange(len(dictionnary_new.keys())) 
width = 1.0 

ax = plt.axes() 
ax.set_xticks(pos + (width/2)) 
ax.set_xticklabels(dictionnary_new.keys()) 

plt.bar(range(len(dictionnary_new)), dictionnary_new.values(), width, color='g') 

plt.show() 

をプレゼントしようとすると、それはしかし、作品すべてを表示しようとします。ただし、Lは、lは次のエラーを取得する15の最も一般的

dictionnary_new = collections.Counter(dictionnary).most_common(15) 

を表示したい:

pos = np.arange(len(dictionnary_new.keys())) 
AttributeError: 'list' object has no attribute 'keys' 
+1

をあなたが投稿したコード。あなたはおそらくすでに 'dictionnary_new = dictionnary_new.keys()'をどこかで行って、リスト(python 2)に変換しています。 –

答えて

1

most_commonはタプルのリストではなく、辞書を返します。 dictionary_newmisnomerです。あなたはその結果に辞書を呼び出すことにより、辞書型にキャストすることができます

dictionary_new = dict(collections.Counter(dictionnary).most_common(15)) 

それとも、と辞書を再構築する往復することなく、キーと値を取ることができる:とはできません

keys, values = zip(*collections.Counter(dictionnary).most_common(15)) 
+0

ありがとうございます – vincent

関連する問題