python collection 系列
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里面的都是对原有的类型的加工而已,扩展了一些功能
posted on 2018-05-23 21:41 blueslichanghui 阅读(171) 评论(0) 收藏 举报
浙公网安备 33010602011771号