1:counter :计算出每一个字符出现的个数,并返回一个字典
obj = collections.Counter('aadfkla;jfl') print(obj) print(obj.most_common(5))#拿到counter里面的前5位
2:有序字典:普通字典是无序的,获取里面的值通过key-value的形式获取,而有序字典则是有顺序的
dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3'] = 'v3' dic.move_to_end('k1') print(dic) dic.popitem() #重后面取出 print(dic) print(dic.pop('k2'))#指定取出的key print(dic)
3:默认字典:也就是指定字典值的类型
dic = collections.defaultdict(list) dic['k1']=['v1'] #这里在指定值的时候以定要加上【】不然相当于把值的类型又改为str了 dic['k2']='v2' dic['k1'].append('v11') print(dic)
4:可命名元组:应用的方向:对于表示坐标时,取值的时候不能用下标来取而是通过obj.x(obj.y)来取
MytupleClass = collections.namedtuple('MytupeClass',['x','y','z']) #这里参数名称可以用()亦可以用【】 obj = MytupleClass(11,22,33) print(obj.x) print(obj.y) print(obj.z) print(help(MytupleClass)) print(obj)
5:双向队列:就是队列的两边都可以进行插入和取出的操做
obj = collections.deque() obj.appendleft('22') obj.append('33') print(obj.count('22')) obj.extend(['33','3333','555','888'])#右边扩展 obj.extendleft('jdjf','sdd') #左边扩展 obj.index('22') #取出该值的索引(从左到右的第一个) obj.insert('2','2hahah') obj.pop()#取出 obj.reverse()#反转 obj.rotate() #把数据从右边逐个取出插入左边 print(obj)
6:注意:队列不是collection里面的,而是python内部就有的,消息机制就是通过队列来实现的
import queue # qsize:个数 #empty #full是否填满;消息机制就是用队列来实现的; q = queue.Queue() q.qsize() q.put('123') q.get() print(q.get())
collections里面的都是对原有的类型的加工而已,扩展了一些功能