一种简单的方法是使用collections.Counter
对象,在大多数情况下,您可以像普通字典一样以各种方式使用该对象,但该对象已进行了优化以保留项目数:
>>> from collections import Counter
>>> d = Counter({'0':3, '1':3, '2':4, '3':4, '4':4})
>>> d
Counter({'3': 4, '2': 4, '4': 4, '1': 3, '0': 3})
>>> d.update(d.keys())
>>> d
Counter({'3': 5, '2': 5, '4': 5, '1': 4, '0': 4})
至于仅在满足某些条件时执行此操作,只需使用理解或生成器仅将要增加的键列表传递给d.update()
:
>>> d = Counter({'3': 4, '2': 4, '4': 4, '1': 3, '0': 3})
>>> d.update((k for k, v in d.items() if v == 4))
>>> d
Counter({'3': 5, '2': 5, '4': 5, '1': 3, '0': 3})