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}
复制代码

 

posted @   美女爱找茬  阅读(302)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示