本文实例讲述了Python使用lambda表达式对字典排序操作。分享给大家供大家参考,具体如下:
lambda表达式也常用于字典排序,既然写到字典排序,那就把按键排序和按值排序都写写好了。
字典按键排序
显然按键排序,需要用字典中每个元素的第一项排序
dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:item[0])
sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[0],reverse=True)
输出(第一个升序,第二个降序):
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 3), ('f', 1), ('g', 7)]
[('g', 7), ('f', 1), ('e', 3), ('d', 4), ('c', 3), ('b', 2), ('a', 1)]]
字典按值排序
需要使用字典中每个元素的第二项进行排序
dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:item[1])
sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[1],reverse=True)
输出
[('f', 1), ('a', 1), ('b', 2), ('e', 3), ('c', 3), ('d', 4), ('g', 7)]
[('g', 7), ('d', 4), ('e', 3), ('c', 3), ('b', 2), ('f', 1), ('a', 1)]
字典的多条件排序
如上例子,我们想将字典按值排序,当值相等时我们按键排序,那么就是多条件排序。
dict = {'f':1,'b':2,'c':3,'d':4,'e':3,'a':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:(item[1],item[0]))
sorted_dict_dsc = sorted(dict.items(),key=lambda item:(item[1],item[0]),reverse=True)
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:python ctypes库2_指定参数类型和返回类型详解Python参数类型以及常见的坑详解Python中实现参数类型检查的简单方法Python函数参数类型*、**的区别python通过装饰器检查函数参数数据类型的方法python 根据字典的键值进行排序的方法python中对数据进行各种排序的方法python实现列表的排序方法分享Python函数参数类型及排序原理总结