我目前正在重新与Python合作,并且喜欢它.但是,我发现自己一遍又一遍地遇到一种模式.我一直在想,必须有一种更好的方式来表达我想要的东西,而且我可能是以错误的方式做到这一点.
我正在编写的代码如下:
# foo is a dictionary
if foo.has_key(bar):
foo[bar] += 1
else:
foo[bar] = 1
我在我的程序中写了很多.我的第一反应是推出一个帮助函数,但是python库经常提供这样的东西.
是否有一些我缺少的简单的小语法技巧?或者这是应该做的方式?
解决方法:
使用defaultdict:
from collections import defaultdict
foo = defaultdict(int)
foo[bar] += 1
在Python> = 2.7中,您还有一个单独的Counter类用于这些目的.对于Python 2.5和2.6,您可以使用其backported version.