Python中的字典排序
参考:
菜鸟教程
目的:对Python中dict这种类,使用 sorted 函数进行排序的总结,做一个备忘。
1
错误
的排序方式
如果直接将dict丢进sorted:
key_value={}
key_value[2] = 56
key_value[1] = 2
key_value[5] = 12
key_value[4] = 24
key_value[6] = 18
key_value[3] = 323
key_value = sorted(key_value)
print(key_value)
得到结果如下:
[1, 2, 3, 4, 5, 6]
顺序是排好了,但是结果变成了key的列表
2 按照
key或者value
进行排序
2.1 按照key排序
key_value={}
key_value[2] = 56
key_value[1] = 2
key_value[5] = 12
key_value[4] = 24
key_value[6] = 18
key_value[3] = 323
key_value = dict(sorted(key_value.items(),key=lambda x:x[0],reverse=False))
print(key_value)
得到结果如下:
{1: 2, 2: 56, 3: 323, 4: 24, 5: 12, 6: 18}
将比第1节,有以下几处改变:
1、对sorted的返回值进行转换,因为sorted返回的是list数据类型
2、排序的对象是
dict.items(),
而不是
dict本身
3、排序方式给定了
lambda
函数,可以自由规定排序方式(默认也是按照key排序)
3、reverse参数,设置是否反转(默认是false,从小到大)
2.2 按照value排序
key_value={}
key_value[2] = 56
key_value[1] = 2
key_value[5] = 12
key_value[4] = 24
key_value[6] = 18
key_value[3] = 323
key_value = dict(sorted(key_value.items(),key=lambda x:x[1],reverse=False))
print(key_value)
得到结果:
{1: 2, 5: 12, 6: 18, 4: 24, 2: 56, 3: 323}
3 自定义排序方式
举例
按照key*value的值进行排序
key_value={}
key_value[0] = 0
key_value[-1] = -1
key_value[2] = 2
key_value[-3] = -3
key_value[4] = 4
key_value[-5] = -5
key_value = dict(sorted(key_value.items(),key=lambda x:(x[0]*x[1]),reverse=False))
print(key_value)
得到结果如下:
{0: 0, -1: -1, 2: 2, -3: -3, 4: 4, -5: -5}
自定义排序的方式,取决于对lambda 函数的定义。
仅仅作为个人学习记录,后续可能会补充。
版权声明:本文为Chen_Meng_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。