Adding a constant integer to a value in a python dictionary

前端 未结 3 1880
陌清茗
陌清茗 2021-01-15 17:55

How would you add a constant number, say 1, to a value in a dictionary if certain conditions are fulfilled.

For example, if I had a dictionary:

dict          


        
3条回答
  •  礼貌的吻别
    2021-01-15 18:31

    One simple way to do this is to use a collections.Counter object, which you can use in every way like a normal dictionary in most ways but it is optimized for keeping a count of items:

    >>> 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})
    

    As for only doing it when certain conditions are fulfilled, just use a comprehension or generator to only pass the list of the keys you want to increment to 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})
    

提交回复
热议问题