在Python中,在递增关键字之前,必须先检查它是否在字典中,这很烦人:
if key in my_dict:
my_dict[key] += num
else:
my_dict[key] = num
上面的四行有没有更短的替代行?
发布于 2012-10-21 04:06:32
另一种选择是:
my_dict[key] = my_dict.get(key, 0) + num
发布于 2012-10-21 04:01:56
你有很多选择。我喜欢使用Counter
>>> from collections import Counter
>>> d = Counter()
>>> d[12] += 3
>>> d
Counter({12: 3})
>>> from collections import defaultdict
>>> d = defaultdict(int) # int() == 0, so the default value for each key is 0
>>> d[12] += 3
>>> d
defaultdict(<function <lambda> at 0x7ff2fe7d37d0>, {12: 3})
发布于 2012-10-21 04:01:44
你想要的东西叫做defaultdict
请参阅http://docs.python.org/library/collections.html#collections.defaultdict
https://stackoverflow.com/questions/12992165
复制相似问题