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  参考源码样例
  • 相关阅读:
    HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看
    环境变量设置错误导致全部命令无法使用解决办法
    正则表达式学习一
    opencv使用中的一点经验记录
    机器学习公开课回顾(一)
    bp算法的一个简单例子
    Ubuntu 16.04安装有道词典
    使用html2canvas库实现一个简单截图功能,还需优化
    PHP-MySQL连接封装-其他简单封装
    PHP获取客户端真实IP
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/14683293.html
Copyright © 2011-2022 走看看