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}