Python中dict排序的两种方法

 更新时间:2024年01月10日 09:34:57   作者:灯笼只能来教室体验生活  
字典本身是无序的,所以它每次输出都是不一样的,顺序都是乱的,那么字典如何排序,本文主要介绍了Python中dict排序的两种方法,感兴趣的可以了解一下

dict 内部是按照哈希值排序的,所以无法得到一个按照键/值升序/降序 的dict。
不过可以得到一个排好序的列表。
比如 d = {"a":1 , "b":3, "c":2} 排序后得到 [('a', 1), ('c', 2), ('b', 3)]

按照值排序

d = {"a":1 , "b":3, "c":2}

""" 
	得到排好序的列表
	>>>d.items()  
	>>>dict_items([('a', 1), ('b', 3), ('c', 2)])
	
	reverse是排序规则是否反过来,默认是升序
	reverse = False 升序
	reverse = True 降序

	>>>d_list
	>>>[('a', 1), ('c', 2), ('b', 3)]  

	
"""
def get_sorted_list(d, reverse=False):
    return sorted(d.items(), key=lambda x:x[1], reverse=reverse)

d_list = get_sorted_list(d)

我们可以获取排好序后的key和value(这完全取决于你需要哪个)

for key,val in d_list:
    print(key,val)
"""
out:
	a 1
	c 2
	b 3
"""

按照键排序

d = {"a":1 , "b":3, "c":2}
def sort_dict_by_keys(d, reverse=True):
	# 这里如果不强制转换会报错,因为d.keys()的类型是:<class 'dict_keys'>,没有sort方法
    keys = list(d.keys())
    keys.sort(reverse=reverse)
    return [(key,d[key]) for key in keys]

d_sort = sort_dict_by_keys(d)
print(d_sort)
"""
out:
	[('c', 2), ('b', 3), ('a', 1)]
"""

不指定排序依据

# 创建一个字典
dic={'a':'甘肃酒泉','b':'广州市','c':'四年'}
print(sorted(dic))

# 输出
['a', 'b', 'c']

指定排序依据,同时返回 key-value

print(sorted(dic.items(),key=lambda s:s[0]))
print(sorted(dic.items(),key=lambda s:s[1]))

# 输出
[('a', '甘肃酒泉'), ('b', '广州市'), ('c', '四年')]
[('c', '四年'), ('b', '广州市'), ('a', '甘肃酒泉')]

字典本身是无序的数据容器,如果要对字典进行排序,需要用到 sorted 这个函数,不指定排序依据时,默认按照 key 进行排序,并返回排序好的列表,指定排序依据时,需要用字典获取 key 和 value 的方法将 key 和 value 传入 sorted 函数,如果指定排序依据的同时,想要他获取键值对,则需要先获取字典的 item 传入,然后指定 key 参数,用 lambda 函数来获取 key,上述排序默认都是升序,如果降序排列,则将 reverse 参数设定为 True 即可。

 到此这篇关于Python中dict排序的两种方法的文章就介绍到这了,更多相关Python dict排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python的净值数据接口调用示例分享

    Python的净值数据接口调用示例分享

    这篇文章主要介绍了Python的净值数据接口调用示例分享的相关资料,需要的朋友可以参考下
    2016-03-03
  • Python中如何实现真正的按位取反运算

    Python中如何实现真正的按位取反运算

    按位取反是位运算符,而位运算符是应用在两个数的运算上,会对数字的二进制所有位数进行从低到高的运算,下面这篇文章主要给大家介绍了关于Python中如何实现真正的按位取反运算的相关资料,需要的朋友可以参考下
    2023-02-02
  • pyenv命令管理多个Python版本

    pyenv命令管理多个Python版本

    这篇文章主要介绍了pyenv命令管理多个Python版本依赖环境的相关资料,需要的朋友可以参考下
    2017-03-03
  • 使用pygame实现垃圾分类小游戏功能(已获校级二等奖)

    使用pygame实现垃圾分类小游戏功能(已获校级二等奖)

    这篇文章主要介绍了使用pygame实现垃圾分类小游戏功能(已获校级二等奖),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python脚本实现依赖漏洞自动扫描工具

    Python脚本实现依赖漏洞自动扫描工具

    这篇文章主要为大家详细介绍了如何通过Python脚本实现一个依赖漏洞自动扫描工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-03-03
  • Python Django 后台管理之后台模型属性详解

    Python Django 后台管理之后台模型属性详解

    这篇文章主要介绍了Python Django 后台管理之后台模型属性,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • pytorch神经网络从零开始实现多层感知机

    pytorch神经网络从零开始实现多层感知机

    这篇文章主要为大家介绍了pytorch神经网络从零开始实现多层感知机的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • python opencv鼠标交互操作的实用指南

    python opencv鼠标交互操作的实用指南

    最近的工作经常需要对图像进行操作,也需要用鼠标对图像进行各种操作,所以下面这篇文章主要给大家介绍了关于python opencv鼠标交互操作的相关资料,需要的朋友可以参考下
    2021-10-10
  • 基于keras中import keras.backend as K的含义说明

    基于keras中import keras.backend as K的含义说明

    这篇文章主要介绍了keras中import keras.backend as K的含义说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python机器学习算法之决策树算法的实现与优缺点

    Python机器学习算法之决策树算法的实现与优缺点

    决策树(Decision Tree)是一种基本的分类与回归方法,这篇文章主要给大家介绍了关于Python机器学习算法之决策树算法实现与优缺点的相关资料,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论