collections是Python内建的一个集合模块,提供了许多有用的集合类。html
python模块分析之random(一)python
有序字典,至关于键值对列表;按照建立时的顺序保持不变。spa
方法:继承了dict结构,有其父类的全部的方法。日志
import collections dt = {'a':1,'b':2,'c':3} o_dict = collections.OrderedDict(dt) # 通用方法 print(o_dict.keys()) # 返回字典全部的键顺序列表 print(o_dict.items()) # 返回字典键值对元组组成的列表 print(o_dict.values()) # 返回字典全部的值组成的列表 print(o_dict.get('a')) # 返回以键查找的值,没有返回None print(o_dict.pop('a')) # 以键弹出一个键值对 print(o_dict.clear()) # 清空字典,返回None print(o_dict.copy()) # 复制一个新的字典 print(o_dict.update({'a':2})) # 更新字典,没有添加新的,有就更新 print(o_dict.setdefault('h', 9)) # 获取一个键的值,若是没有用默认值替代同时加入到字典,有直接返回值 print(o_dict.fromkeys(['a', 'f', 'g'], value=10)) # 建立一个值相同的字典,和原来的字典无关,类方法 # 特殊方法 print(o_dict.popitem(last=True)) # 以元组的方式从右端弹出键值对,last=False从左边弹出 print(o_dict.move_to_end('a', last=True)) # 将一个键值对移到字典的末尾
import collections dt = {'a':1,'b':2,'c':3} # 可接受一个数据类型或无参数函数做为初始化 o_dict = collections.defaultdict(list) o_dict1 = collections.defaultdict(lambda :10) print(o_dict) print(o_dict['a'].append(1)) # 默认全部的值都是列表 print(o_dict.get('a')) # 若是键存在,默认值为10 print(o_dict1)
namedtuple是一个函数,它用来建立一个自定义的tuple对象,而且规定了tuple元素的个数,并能够用属性而不是索引来引用tuple的某个元素。code
import collections # 返回一个tuple类型,能够经过自定义的属性访问而不是索引 User = collections.namedtuple('User', ['age','name']) user = User(19,'xiaoming') print(user.name) print(user.age)
import collections l = ['a', 'b', 'c'] dq = collections.deque(l) print(dq.append('c')) # 从右边插入 print(dq.appendleft('c')) # 从左边插入 print(dq.pop()) # 从右边弹出 print(dq.popleft()) # 从左边弹出 print(dq.rotate(3)) # 当参数为正,从右边数n个移到左边;参数为负数时,从左边移动
import collections l = 'ffdsgdfgasfsghdgdaf' c = collections.Counter(l) # 直接生成以字符为键,个数为值的字典,值必须为int print(c.most_common(3)) # 输出排名前3的元组列表 print(list(c.elements())) # 输出字符列表,从多到少 print(c.subtract('fsdfsfsf')) # 计算相减,获得相减后的字典 print(c)
import collections dt1 = {'a':1, 'b':2} dt2 = {'c':1, 'd':2} c = collections.ChainMap([dt1, dt2]) # 建立一个映射视图将多个字典合在一块儿 # 特殊的方法 print(c.maps) # 返回全部的字典列表 # 在字典列表头部插入字典,若是其参数为空,则会默认插入一个空字典,而且返回一个改变后的ChainMap对象 print(c.new_child({'a':1}))