字典排序_初学Python最简易入门之十四排序算法10对字典排序

本文详细介绍了Python中sorted()函数用于字典排序的方法,包括按键名从小到大、从大到小排序,以及按键值排序。通过实例展示了如何根据键值从大到小排序,并演示了如何在排序时同时输出键名和键值。最后讨论了如何将排序后的结果转换回字典形式,并提供了使用交换法对字典排序的示例。
摘要由CSDN通过智能技术生成

当用sorted()函数对字典临时排序的时候,默认是对字典键名从小到大排序,排序的结果以列表的形式输出。如图14-10-1所示实例14-10-1用sorted()对棋类字典排序.pyw,程序执行结果见图14-10-2:

e09380687497b4d03eac1d7144b760b9.png

图14-10-1

acbc9c2467156cdcfe17138155a7412a.png

图14-10-2

当用sorted()函数对字典临时排序的时候,如果要求字典键名从大到小排序,需要在sorted()中增加参数“reverse=True”, 如图14-10-3所示实例14-10-2用sorted()对棋类字典键名从大到小排序.pyw,程序执行结果见图14-10-4:

2e00640528d76927af2913896579ef67.png

图14-10-3

23eba691d9da3b26d91fc88acfbd8e6f.png

图14-10-4

用sorted()函数对字典临时排序的时候,如果要求根据字典键值从小到大排序,需要修改sorted()中的参数为“chess.values()”, 如图14-10-5所示实例14-10-3用sorted()对棋类字典键值从小到大排序.pyw,程序执行结果见图14-10-6:

4f15ec5cc15e70fd1f7dbb2012b399d5.png

图14-10-5

87eccea461c6f7696206eab5570c72b8.png

图14-10-6

想想练练

如果要求根据字典键值从大到小排序,需要像根据键名从大到小排序那样进一步修改sorted()中的参数,请根据图14-10-3所示程序14-10-2和图14-10-5所示程序14-10-3那样编写程序将棋子数排序为“361,50,32,32”。

当我们想用sorted()对字典排序且要求同时输出键名和值的时候,我们就必须进一步增加sorted()中的参数,如图14-10-7所示实例程序14-10-4用sorted()对棋类字典键名从小到大排序输出键名和键值.pyw,我们在sorted()函数的参数表中修改了“chess.items()”,增加了“key=lambda x:x[0]”。程序执行后输出结果如图14-10-8:

3ea96dda3ff7ccdc4c3a9a9601801f9a.png

图14-10-7

大家可以看出:其输出结果以列表中的元组形式存在。它已不是字典了。如果要求最后的排序结果仍然是以字典的形式出现。需要进一步转换。

当然,字典的排序也可以使用我们本章前七节讲述的排序方法,自己编写程序实现排序的功能。

f281baa7e58c528fcb73b26847545bdf.png

图14-10-8

图14-10-9所示实例14-10-5字典转换为列表后按棋类键名排序.pyw,将字典依据键名用交换法进行了从小到大排序。其执行结果如图14-10-10所示,排序结果输出仍然是字典,这是真正意义的对字典的排序:

d49f9404f6e04e0edcd61aca81001392.png

图14-10-9

9d5d62cf958c9d402a0761b0ff3d6696.png

图14-10-10

图14-10-12所示实例14-10-6字典转换为列表后按棋类键值排序.pyw,将字典依据键值用交换法进行了从大到小排序,它实际上只把比较语句“if a[j]>a[j+1]:”修改为“if b[j]”和“

c7e540dc9cc5cbdabeaa1b5326b9535b.png

图14-10-11

42000a130f0ce423313452086010e45d.png

图14-10-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值