双方Counter
并defaultdict(int)
可以工作在这里很好,但它们之间存在一些差异:
Counter
支持您可以在多集合上执行的大多数操作。因此,如果要使用这些操作,请使用Counter。
Counter
查询缺少的键时,不会将新键添加到字典中。因此,如果您的查询包含字典中可能不存在的键,则最好使用Counter
。
例:
>>> c = Counter()
>>> d = defaultdict(int)
>>> c[0], d[1]
(0, 0)
>>> c
Counter()
>>> d
defaultdict(<type 'int'>, {1: 0})
例:
例:
>>> c = Counter('aaaaaaaaabbbbbbbcc')
>>> c.most_common()
[('a', 9), ('b', 7), ('c', 2)]
>>> c.most_common(2) #return 2 most common items and their counts
[('a', 9), ('b', 7)]
例:
>>> c = Counter({'a':5, 'b':3})
>>> list(c.elements())
['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b']
因此,根据要对结果dict进行的处理,可以在Counter
和之间进行选择defaultdict(int)
。