• python 学习_collection


    collections模块在内置数据类型(dict  list  set  tuple)的基础上, 还提供了几个额外的数据类型

      ChainMap Counter depue defaultdict namedtuple OrderedDict

    1. namedtuple 生成可以使用名字来访问元素内容的tuple子集

    2. deque 双端队列 可以快速的从另一端追加和退出对象

    3. Counter 计算器 主要用来计数

    4. OrderedDict 有序字典

    5. defaultdict 带有默认值的字典



    #  1.  namedtuple      生成可以使用名字来访问元素内容的tuple子集
    from collections import namedtuple
    
    Point = namedtuple("Point",['x','y'])
    
    p = Point(1,2)
    print(p.x)      #1
    print(p.y)      #2
    print(p)        #Point(x=1, y=2)
    # 2.  deque 双端队列   可以快速的从另一端追加和退出对象
    from collections import  deque
    q = deque(['a','b','c'])
    q.append('x')
    q.appendleft('y')
    print(q)
    #3.  Counter 计算器   主要用来计数
    from  collections import  Counter
    c =  Counter()
    for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
        c[word] = c[word] + 1
    print(c)        # Counter({'blue': 3, 'red': 2, 'green': 1})
    # 4.  OrderedDict      有序字典
    # 使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
    # 如果要保持Key的顺序,可以用OrderedDict:
    
    from collections import  OrderedDict
    d = dict(a=1,b=2,c=3)
    od = OrderedDict(a=1,b=2,c=3)
    print(od)  # # OrderedDict的   Key    是有序的
    from collections import  OrderedDict
    od = OrderedDict(a=1,b=2,c=3)
    od['z'] =222
    print(od.keys())  # odict_keys(['a', 'b', 'c', 'z'])
    # OrderedDict 可以实现FIFO(先进先出)的dict 当容量超出限制时, 先删除最早添加的key



    # 5.  defaultdict      带有默认值的字典
    # 使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict:
    
    from collections import  defaultdict
    dd = defaultdict(lambda: 'WWWW')
    dd['key1'] = 'abc'
    print(dd['key1'])   # abc
    
    print(dd['key12'])      # WWWW   不存在 返回默认值
    
    
    s = 'mississippi'
    d = collections.defaultdict(int)
    for i in s:
        d[i] +=1
    
    print(d)        #defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})









  • 相关阅读:
    Lua函数
    Lua 造成的代码冗余太严重了, 这个现状怎么改善?
    Lua 造成的代码冗余太严重了, 这个现状怎么改善?
    Lua 错误处理方法
    Lua 错误处理方法
    C++引用、指针的选择
    C++引用、指针的选择
    Windows 7下VS2008升级补丁
    Windows 7下VS2008升级补丁
    天龙八部服务器端共享内存的设计(3/3)
  • 原文地址:https://www.cnblogs.com/augustyang/p/10470977.html
Copyright © 2020-2023  润新知