执行此操作的一种简单方法是使用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})