配列内の要素を辞書に格納すると、カレントコードのバージョンがより短いですか?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
配列内の要素を辞書に格納すると、カレントコードのバージョンがより短いですか?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
あなたはcollections.Counter()
を使用することができます。
from collections import Counter
a = [1, 2, 2, 3, 4, 5, 2, 2, 1]
dic = Counter(a)
ドキュメントから:
Counter
はハッシュ可能オブジェクトをカウントするdict
サブクラスです。 要素がディクショナリキーとして格納され、その数がディクショナリ値として格納される順序付けられていないコレクションです。
あなたは、キーの値を取得するために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
はい、 'collections.Counter'を使用してください –