• Python-Collections模块之OrderedDict


    OrderedDict : dict的子类,可以记住元素的添加顺序

    一、OrderedDict: 类似于正常的词典,只是它记住了元素插入的顺序,当在有序的词典上迭代时,返回的元素就是它们第一次添加的顺序(人话:给字典排序,至于规则,自己定,可以按照key的首字母从a-z排序,也可以按照value的大小排,也可以按照长度排)

    from collections import OrderedDict
    
    d = {"banana":3,"apple":2,"pear":1,"orange":4}
    #按照key排序(实用场景:通常做接口测试时,会对请求的参数名进行升序排列,然后再将所有参数值组合以key=value的形式拼成
    #            一个新的字符串,不同参数之间以'&'连接且没有任何分隔符,最后MD5签名)
    a = OrderedDict(sorted(d.items(),key=lambda x:x[0]))
    print(a)
    #执行结果: OrderedDict([('apple', 2), ('banana', 3), ('orange', 4), ('pear', 1)])
    print(dict(a))
    #执行结果:{'apple': 2, 'banana': 3, 'orange': 4, 'pear': 1}
    
    #按照value排序
    d = {"banana":3,"apple":2,"pear":1,"orange":4}
    a = OrderedDict(sorted(d.items(),key=lambda x:x[1]))
    print(a)
    #执行结果: OrderedDict([('pear', 1), ('apple', 2), ('banana', 3), ('orange', 4)])
    print(dict(a))
    #执行结果:{'pear': 1, 'apple': 2, 'banana': 3, 'orange': 4}
    
    #按照key的长度排序
    d = {"banana": 3, "apple": 2, "pear": 1, "orange":4}
    a = OrderedDict(sorted(d.items(),key=lambda x: len(x[0])))
    print(a)
    #执行结果: OrderedDict([('pear', 1), ('apple', 2), ('banana', 3), ('orange', 4)])
    
    #删除一个元素(在排好序的基础上再删除元素时,保持排序,且顺序不变)
    d = {"banana": 3, "apple": 2, "pear": 1, "orange":4}
    a = OrderedDict(d)
    del a['apple']
    print(a)
    #执行结果: OrderedDict([('banana', 3), ('pear', 1), ('orange', 4)])
    
    #增加一个元素(在排好序的基础上再增加元素时,不能保持排序,并默认加到末尾)
    d = {"banana": 3, "apple": 2, "pear": 1, "orange":4}
    a = OrderedDict(d)
    d['cherry'] = 5
    print(d)
    #执行结果:{'banana': 3, 'apple': 2, 'pear': 1, 'orange': 4, 'cherry': 5}
    
    #修改一个元素
    d = {"banana": 3, "apple": 2, "pear": 1, "orange":4}
    a = OrderedDict(d)
    a['apple'] = 9
    print(dict(a))
    #执行结果:{'banana': 3, 'apple': 9, 'pear': 1, 'orange': 4}
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    三、ADO.Net基础【04】简单查询
    Canvas 图片绕边旋转的小动画
    Canvas 剪切图片
    Canvas 图片平铺设置
    Canvas 给图形绘制阴影
    Canvas 图形组合方式
    [转]JS获取URL传参方法
    HTML5 FileReader接口学习笔记
    css3实现圆角边框渐变
    HTML5新增属性学习笔记
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/14950255.html
Copyright © 2020-2023  润新知