• python3之模块collections


    1.计数器(counter)

    counter是对字典的方法,用来追踪值的出现次数;具备字典的所有功能和自己的功能。

    >>> from collections import Counter
    >>> d2 = Count
    >>> d2 = Counter('abbcccddd')  #对值计数
    >>> print(d2)
    Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1})
    >>> print(type(d2))
    <class 'collections.Counter'>
    >>> d2 = Counter('abbcccddd')
    >>> for i in d2.elements():    #计数元素迭代器
    ...   print(i)
    ... 
    b
    b
    a
    d
    d
    d
    c
    c
    c
    >>> d2.clear()   #清空元素
    >>> print(d2)
    Counter()
    
    >>> d3 = d2.copy()  #拷贝
    >>> d3
    Counter({'d': 3, 'c': 3, 'b': 2, 'a': 1})
    
    >>> d2.update('ddffffff')   #更新
    >>> d2
    Counter({'f': 6, 'd': 5, 'c': 3, 'b': 2, 'a': 1})
    
    >>> d2.subtract('fffff')  #减去元素个数
    >>> d2
    Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1, 'f': 1})
    
    >>> d4 = d2.pop('f')  #提取dict的key
    >>> d4
    1
    >>> d2
    Counter({'d': 5, 'c': 3, 'b': 2, 'a': 1})

    2、有序字典(OrderedDict)

    OrderedDict是对字典的补充,它可以记住字典元素添加的顺序。

    >>> from collections import OrderedDict
    >>> dic1 = OrderedDict({'k1':'v1','k2':'v2','k4':'v4','k3':'v3'})
    >>> dic1    #创建有序列的字典
    OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
    >>> print(type(dic1))
    <class 'collections.OrderedDict'>
    >>> dic1.popitem()    #默认提取最后要给key
    ('k3', 'v3')
    >>> dic1
    OrderedDict([('k4', 'v4'), ('k1', 'v1'), ('k2', 'v2')])
    >>> dic1.move_to_end('k4')   #将指定key移到最后
    >>> dic1
    OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k4', 'v4')])

    3、默认字典(defaultdict)

    defaultdict是对字典的类型补充,它默认给字典的值设置了一个类型

    >>> from collections import defaultdict
    >>> dict1 = defaultdict(list)   #创建默认字典
    >>> dict1
    defaultdict(<class 'list'>, {})
    >>> print(type(dict1))
    <class 'collections.defaultdict'>
    >>> for i in range(20):  #实例
    ...   if i%2 == 0:
    ...     dict1['k1'].append(i)
    ...   else:
    ...     dict1['k2'].append(i)
    ... 
    >>> dict1
    defaultdict(<class 'list'>, {'k1': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], 'k2': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]})

    4、可命名元组(namedtuple)

    根据namedtuple可以创建一个包含tuple所有功能以及其他功能的类型

    >>> from collections import namedtuple
    >>> tup1 = namedtuple('tup1',['x','y','z','u'])  #创建可命名元组
    >>> obj = tup1(111,22,333,4444)  #创建对象
    >>> print(obj.x)   #输出对象序列的值
    111
    >>> print(obj.y)
    22
    >>> print(obj.z)
    333
    >>> print(obj.u)
    4444
  • 相关阅读:
    文科妹子都会用 GitHub,你这个工科生还等什么
    阿里巴巴开发手册强制使用SLF4J作为门面担当的秘密,我搞清楚了
    天啦撸!打印日志竟然只晓得 Log4j?
    老板下了死命令,要把日志系统切换到Logback
    根号x的导数,求导方法
    Java内存模型
    loadrunner截取变量的字符串
    loadrunner11回放日志中文乱码解决办法
    软件性能测试的几个主要术语
    什么是自动化测试框架
  • 原文地址:https://www.cnblogs.com/zhangxinqi/p/7921941.html
走看看 - 开发者的网上家园