zoukankan      html  css  js  c++  java
  • 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}
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    【xsy2479】counting 生成函数+多项式快速幂
    【 2019北京集训测试赛(十)】 子矩阵 二分
    【2019北京集训测试赛(七)】 操作 分治+FFT+生成函数
    Python 导出项目依赖/导出所有安装模块/打包数据
    数据结构与算法 介绍以及常见的算法排序
    爬虫 scrapy框架
    爬虫 开发者工具详解
    爬虫 selenium+Xpath 爬取动态js页面元素内容
    爬虫 解析库re,Beautifulsoup,
    爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/14950255.html
Copyright © 2011-2022 走看看