あなたはほとんどそれを正しくやっていて、あなたのコードはうまく働いています:
>>> dictionaryNumbers = {'a':10,'b':10,'c':1,'d':1,'e':5,'f':1}
>>> dictionaryNumbers['a'] += 5
>>> dictionaryNumbers['a']
15
ただし、まだdictに含まれていないキーについては、最初にテストするか(if key not in dictionaryNumbers
)を使用するか、次を使用する必要があります.get()
。
>>> dictionaryNumbers['z'] = dictionaryNumbers.get('z', 0) + 3
早く古くなります。
しかし、代わりにcollections.Counter()
クラスを使用します。
>>> from collections import Counter
>>> counter = Counter()
>>> counter.update({'a':10,'b':10,'c':1,'d':1,'e':5,'f':1})
>>> counter
Counter({'a': 10, 'b': 10, 'e': 5, 'c': 1, 'd': 1, 'f': 1})
>>> counter['a'] += 5
>>> counter['a']
15
>>> counter.most_common(3)
[('a', 15), ('b', 10), ('e', 5)]
利点:
- 新しいキーをテストする必要はありません。存在しないキーにアクセスすると、自動的にカウント0が割り当てられます
- カウントするアイテムのリストから新しいカウンターを作成するのは、と同じくらい簡単
Counter(items_to_count)
です。
- カウンターを合計することができます。すべての値が合計され
counter1 + counter2
たnewを返します。Counter
- カウンターを減算する(負の値を削除する)、それらを交差させる(いずれかのカウントの最小値を見つける)、または和集合を作成する(最大カウント)ことができます。