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函数定义及传参方式详解(4种)

    Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Broadcast广播机制在Pytorch Tensor Numpy中的使用详解

    Broadcast广播机制在Pytorch Tensor Numpy中的使用详解

    python中Broadcast机制非常实用,在python中的广播机制其实很简单,下方主要介绍Broadcast广播机制在Pytorch Tensor Numpy中的使用,希望对你有所帮助
    2022-08-08
  • Pytorch Tensor 输出为txt和mat格式方式

    Pytorch Tensor 输出为txt和mat格式方式

    今天小编就为大家分享一篇Pytorch Tensor 输出为txt和mat格式方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python环境下搭建属于自己的pip源的教程

    Python环境下搭建属于自己的pip源的教程

    这篇文章主要介绍了Python环境下搭建属于自己的pip源的教程,同时也附带讲解了修改pip源设定的方法,需要的朋友可以参考下
    2016-05-05
  • 使用Pyinstaller转换.py文件为.exe可执行程序过程详解

    使用Pyinstaller转换.py文件为.exe可执行程序过程详解

    这篇文章主要介绍了使用Pyinstaller转换.py文件为.exe可执行程序过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Flask解决跨域的问题示例代码

    Flask解决跨域的问题示例代码

    这篇文章主要介绍了Flask解决跨域的问题示例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 浅谈python中拼接路径os.path.join斜杠的问题

    浅谈python中拼接路径os.path.join斜杠的问题

    今天小编就为大家分享一篇浅谈python中拼接路径os.path.join斜杠的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 总结分析python数据化运营关联规则

    总结分析python数据化运营关联规则

    本文内容主要介绍了python数据化运营中关联规则的一般应用场景,以及关联规则的实现,并例举了适应的应用示例,方便大家更直观的理解应用
    2021-08-08
  • OpenCV-Python实现怀旧滤镜与连环画滤镜

    OpenCV-Python实现怀旧滤镜与连环画滤镜

    很多时候通过ps可以做很多效果,今天我们来介绍使用OpenCV-Python实现怀旧滤镜与连环画滤镜,具有一定的参考价值,感兴趣的可以了解一下
    2021-06-06
  • python3实现名片管理系统(控制台版)

    python3实现名片管理系统(控制台版)

    这篇文章主要为大家详细介绍了python3实现名片管理系统控制台版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11

最新评论