import collections
data1 = [‘a‘,‘b‘,‘c‘,‘a‘,‘b‘,‘a‘]
col_1 = collections.Counter(data1)
data2 = ‘python and pyspark‘
col_2 = collections.Counter(data2)
print(col_1)
print(col_2)
输出结果: Counter({‘a‘: 3, ‘b‘: 2, ‘c‘: 1})
Counter({‘ ‘: 2,‘a‘: 2,‘d‘: 1,‘h‘: 1,‘k‘: 1,‘n‘: 2,‘o‘: 1,‘p‘: 3,‘r‘: 1,‘s‘: 1,‘t‘: 1,‘y‘: 2})
2.most_common
most_common是Counter的一种方法,它可以快速取出Counter类型变量中排名靠前的数据,比如取出上例中排名前5的数据
print(col_2.most_common(5))
输出结果:[(‘p‘, 3), (‘a‘, 2), (‘ ‘, 2), (‘n‘, 2), (‘y‘, 2)]
3.defaultdict
defaultdict可以很好的避免dict中Key不存在时抛出的KeyError,当dict中key不存在时,可使用一个默认值代替
a = collections.defaultdict(int)
for item in data2:
a[item] += 1
print(a)
输出结果:defaultdict(int,{‘ ‘: 2,‘a‘: 2,‘d‘: 1,‘h‘: 1,‘k‘: 1,‘n‘: 2,‘o‘: 1,‘p‘: 3,‘r‘: 1,‘s‘: 1,‘t‘: 1,‘y‘: 2})
4.namedtuple
namedtuple可以为不变集合tuple中的元素指定名称
Info = collections.namedtuple(‘Info‘, [‘name‘,‘gender‘,‘age‘])
i = Info(‘abe‘,‘m‘,‘30‘)
print(i,i.name)
输出结果:(Info(name=‘abe‘, gender=‘m‘, age=30), ‘abe‘)
原文地址:http://blog.51cto.com/abezoo/2083210