博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字典排序
阅读量:5124 次
发布时间:2019-06-13

本文共 831 字,大约阅读时间需要 2 分钟。

 sorted函数默认是按从小到大排序的,如果要从大到小排序,就需要将reverse设置为True。

 字典的值是不具有可迭代性的,只有他的键可迭代,所以可以直接对键进行排序,但不能对值进行排序:

dic = {
'a':3 , 'b':5, 'c': 1}a = sorted(dic, reverse=True)print a 或者 a = sorted(dic.keys(),reverse=True)

要想对值进行排序,就必须将字典转换乘键值的可迭代,而不仅仅是键的可迭代。所以用iteritems生成一个可迭代的对象

>>> sorted(dict1.iteritems(), key=lambda A:A[0], reverse=True)        对键排序[('Shanghai', 40), ('Guangzhou', 29), ('Beijing', 34)]  >>> sorted(dict1.iteritems(), key=lambda A:A[1], reverse=True)        对值排序[('Shanghai', 40), ('Beijing', 34), ('Guangzhou', 29)]

 也可以用items生成

dic = {
'a':3 , 'b':5, 'c': 1}a = sorted(dic.items(), key=lambda A:A[0], reverse=True)print a

注意:第一个参数把每个键值对传给key所在的匿名函数,然后经过函数处理生成新的元祖然后再用sorted函数排序。iteritems让字典变为可迭代,然后一个一个传给key,而不是把整个字典传给key,不会像list中[0]表示取第一个元素(因为那是针对lsit整体),这也就是可迭代的意义所在。

 

转载于:https://www.cnblogs.com/ymjyqsx/p/6555371.html

你可能感兴趣的文章
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>