zoukankan      html  css  js  c++  java
  • python常用数据结构模块--collections

    import collections
    '''
        python常用数据结构模块--collections
      collections是日常工作中的重点、高频模块,常用类型有:
      计数器(Counter)
      双向队列(deque)    参考源码 就是list
      默认字典(defaultdict)
      有序字典(OrderedDict)
      可命名元组(namedtuple)   #常用于定义一个类,该类只有一些属性,没有方法
    '''
    # namedtuple 用于定义一个类,该类只有一些属性,没有方法
    People = collections.namedtuple("Peole", ["name", "age"])
    
    people = People("W", 18)
    print(people)
    """
    "C:Program Files (x86)python3.8python.exe" D:/xiaoxiao/wzg/untitled/collection模块学习.py
    Peole(name='W', age=18)
    Process finished with exit code 0
    """
    # OrderedDict  有序字典 可实现按key或者value排序
    
    
    print("正经的字典,")
    d = {}
    d['a'] = 'A'
    d['b'] = 'B'
    d['c'] = 'C'
    for k, v in d.items():
        print(k, v)
    print("不正经的字典(我有序了,哎,就是玩儿)")
    d1 = collections.OrderedDict()
    d1['a'] = 'A'
    d1['b'] = 'B'
    d1['c'] = 'C'
    d1['1'] = '1'
    d1['2'] = '2'
    for k, v in d1.items():
        print(k, v)
    """
    输出:
    正经的字典,   无序
    a A
    b B
    c C
    不正经的字典(我有序了,哎,就是玩儿)
    a A
    b B
    c C
    1 1
    2 2
    """
    
    print("正经的字典,")
    d2 = {}
    d2['a'] = 'A'
    d2['b'] = 'B'
    d2['c'] = 'C'
    
    d3 = {}
    d3['c'] = 'C'
    d3['a'] = 'A'
    d3['b'] = 'B'
    
    print("不正经的字典(我有序了,哎,就是玩儿)")
    d4 = collections.OrderedDict()
    d4['a'] = 'A'
    d4['b'] = 'B'
    d4['c'] = 'C'
    
    d5 = collections.OrderedDict()
    d5['c'] = 'C'
    d5['a'] = 'A'
    d5['b'] = 'B'
    
    print(d == d2)
    print(d4 == d5)
    """
    输出:
    True
    False
    结论:有序的字典(OrderedDict):顺序不同的,元素相同,对象也是不同的
    """
    dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
    #按key排序
    kd = collections.OrderedDict(sorted(dd.items(), key=lambda item: item[0]))
    print(kd)
    #按照value排序
    vd = collections.OrderedDict(sorted(dd.items(),key=lambda item:item[1]))
    print(vd)
    '''
    输出:
    OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
    OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
    '''
    #Counter  参考源码样例
  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/14683293.html
Copyright © 2011-2022 走看看