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




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出

图14-10-1




python生产从大到小的数组 python对一组数从大到小排序_python 字典排序 最大键_02

图14-10-2



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




python生产从大到小的数组 python对一组数从大到小排序_python 字典排序 最大键_03

图14-10-3




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_04

图14-10-4



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




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_05

图14-10-5




python生产从大到小的数组 python对一组数从大到小排序_python 字典排序 最大键_06

图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:




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_07

图14-10-7



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

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




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_08

图14-10-8



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




python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_09

图14-10-9




python生产从大到小的数组 python对一组数从大到小排序_python 字典排序 最大键_10

图14-10-10



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



python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_11

图14-10-11



python生产从大到小的数组 python对一组数从大到小排序_字典和键值对换输出_12

图14-10-12