counter:对字典进行处理,用于计算元素出现的个数
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collections#计数器,Counterobj = collections.Counter("asdfghjgioccvbnjrtubvg6782bnsh2bn")print(obj)#取前4个数,排序按照从多到少ret = obj.most_common(4)print(ret)#obj:处理完的数据for k,v in obj.items(): print(k, v) #elements:原生的值,未经过加工处理的for i in obj.elements(): print(i)
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collectionsobj = collections.Counter([‘11‘, ‘22‘, ‘33‘, ‘44‘, ‘55‘])print(obj)#增加obj.update([‘eric‘, ‘11‘, ‘11‘])print(obj)#删除obj.subtract([‘eric‘, ‘11‘, ‘11‘])print(obj)
有序字典
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collections#列表+字典=有序字典,key取列表中的元素dic = collections.OrderedDict()dic[‘k1‘] = ‘v1‘dic[‘k2‘] = ‘v2‘dic[‘k3‘] = ‘v3‘dic[‘k4‘] = ‘v4‘dic[‘k5‘] = ‘v5‘dic[‘k6‘] = ‘v6‘dic[‘k7‘] = ‘v7‘dic[‘k8‘] = ‘v8‘print(dic)
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collections#列表+字典=有序字典,key取列表中的元素dic = collections.OrderedDict()dic[‘k1‘] = ‘v1‘dic[‘k2‘] = ‘v2‘dic[‘k3‘] = ‘v3‘dic[‘k4‘] = ‘v4‘dic[‘k5‘] = ‘v5‘dic[‘k6‘] = ‘v6‘dic[‘k7‘] = ‘v7‘dic[‘k8‘] = ‘v8‘print(dic)#移动到最后dic.move_to_end(‘k1‘)print(dic)#后进先出dic.popitem()print(dic)#指定取数,pop将取出的数据为己有ret = dic.pop(‘k3‘)print(dic)print(ret)#设置默认值,如果存在不做任何操作,如果不存在则增加dic.setdefault(‘k9‘,‘22‘)print(dic)#更新dic.update({‘k1‘:‘v1‘, ‘k10‘:‘v10‘})print(dic)
默认字典
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collectionsvalues = [11, 22, 33, 44, 55, 66, 77, 88]my_dict = collections.defaultdict(list) for value in values: if value > 33: my_dict[‘k1‘].append(value) else: my_dict[‘k2‘].append(value) print(my_dict)
可命名元祖
#创建类,defaultdictMytupleClass = collections.namedtuple(‘MytupleClass‘,[‘x‘, ‘y‘, ‘z‘])print(help(MytupleClass))obj = MytupleClass(11, 22, 33)print(obj.x)print(obj.y)print(obj.z)
双向队列
#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: wanghuafeng import collections d = collections.deque()#增加一个d.append(‘1‘)#往左增加d.appendleft(‘10‘)d.appendleft(‘1‘)print(d)#统计个数ret = d.count(‘1‘)print(ret)#扩展,右边增加d.extend([‘yy‘, ‘qq‘, ‘11‘])print(d)#扩展,左边增加d.extendleft([‘y1y‘, ‘q2q‘, ‘131‘])print(d)#从右取数插入左边d.rotate(3)print(d)
单向队列
import queue#创建单向队列q = queue.Queue()#增加数据q.put(‘123‘)q.put(‘456‘)print(q.qsize())#按顺序取数据print(q.get())
时间: 2024-08-27 12:16:20