双方
Counter并
defaultdict(int)可以工作在这里很好,但它们之间存在一些差异:
Counter
支持您可以在多集合上执行的大多数 *** 作。因此,如果要使用这些 *** 作,请使用Counter。Counter
查询缺少的键时,不会将新键添加到字典中。因此,如果您的查询包含字典中可能不存在的键,则最好使用Counter
。
例:
>>> c = Counter()>>> d = defaultdict(int)>>> c[0], d[1](0, 0)>>> cCounter()>>> ddefaultdict(<type 'int'>, {1: 0})
例:
Counter
也有一种称为的方法most_common
,可让您按项目数对项目进行排序。要获得相同的东西,defaultdict
您必须使用sorted
。
例:
>>> 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)]
Counter
还允许您从Counter对象创建元素列表。
例:
>>> c = Counter({'a':5, 'b':3})>>> list(c.elements())['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b']
因此,根据要对结果dict进行的处理,可以在
Counter和之间进行选择
defaultdict(int)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)