我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

为了更好的理解词频统计,可能需要对词频统计的结果进行加工。其中,就有对字典类型数据进行排序的需求。本文,正是对这种字典排序需求,进行代码理论准备的。

苏南大叔:基于python,dict字典类型按key排序/按value排序的解决方案 - 字典类型排序
基于python,dict字典类型按key排序/按value排序的解决方案(图2-1)

苏南大叔的“平行空间笔记本”技术博客,记录苏南大叔的代码经验总结。本文测试环境:win10python@3.11.0numpy@1.24.2。因为关于具体的排序的标准,实际上没有统一的说法。所以,这里的方案仅仅算抛砖引玉。

按key排序

字典类型的key,不一定是数字的。这段代码的目标就是安装key排序,同时保持对应关系。

_dict = {2: "南", 1: "苏", 4: "叔", 3: "大"}
_dict1 = dict([(k, _dict[k]) for k in sorted(_dict.keys())])  # 推导式
_dict2 = dict(sorted(_dict.items(), key=lambda d: d[0]))      # 拉姆达

print(_dict1, type(_dict1))  # {1: '苏', 2: '南', 3: '大', 4: '叔'} <class 'dict'>
print(_dict2, type(_dict2))  # {1: '苏', 2: '南', 3: '大', 4: '叔'} <class 'dict'>

按value排序

这里换了一个新的字典变量,主要为了更加好理解按value排序后的结果。

_dict = {2: "a", 1: "d", 4: "c", 3: "b", 5: "e"}
_dict2 = dict(sorted(_dict.items(), key=lambda d: d[1]))
print(_dict2, type(_dict2))  # {2: 'a', 3: 'b', 4: 'c', 1: 'd', 5: 'e'} <class 'dict'>

按预设value排序

下面回归最开始的需要排序的变量,这个顺序是苏南大叔自定义的。毕竟中文排序这个事情,还是不太好说的。这里预设一个符合想法的顺序可能比较好一点。

_dict = {2: "南", 1: "苏", 4: "叔", 3: "大"}
_dict2 = dict(sorted(_dict.items(), key=lambda d: list("苏南大叔").index(d[1])))
print(_dict2, type(_dict2))  # {1: '苏', 2: '南', 3: '大', 4: '叔'} <class 'dict'>

苏南大叔:基于python,dict字典类型按key排序/按value排序的解决方案 - 字典类型排序2
基于python,dict字典类型按key排序/按value排序的解决方案(图2-2)

相关文章

结语

苏南大叔的更多python文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python