2017-11-30 7 views
1

配列内の要素を辞書に格納すると、カレントコードのバージョンがより短いですか?Pythonで更新辞書のコードを短くする

a = [1,2,2,3,4,5,2,2,1] 
dic = {} 
for x in a: 
    if x in dic: 
     dic[x] = dic[x] + 1 
    else: 
     dic[x] = 1 

print dic 
+3

はい、 'collections.Counter'を使用してください –

答えて

2

あなたはcollections.Counter()を使用することができます。

from collections import Counter 

a = [1, 2, 2, 3, 4, 5, 2, 2, 1] 
dic = Counter(a) 

ドキュメントから:

Counterはハッシュ可能オブジェクトをカウントするdictサブクラスです。 要素がディクショナリキーとして格納され、その数がディクショナリ値として格納される順序付けられていないコレクションです。

2

はい

あなたは、キーの値を取得するためにdictionary.get(key, default)を使用することができ、キーが存在しない場合は、デフォルトの引数を与えます。

a = [1,2,2,3,4,5,2,2,1] 
dic = {} 

for n in a: 
    dic[n] = dic.get(n, 0) + 1