Python中使用sorted函数对dict进行排序

  • Post author:
  • Post category:python


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 版权协议,转载请附上原文出处链接和本声明。