永发信息网

求python 字典 中根据值的大小,按顺序排列键的方法

答案:4  悬赏:10  手机版
解决时间 2021-02-13 10:28
求python 字典 中根据值的大小,按顺序排列键的方法
最佳答案
s = {"a":"bb","b":"cc","c":"aa"}
def fun(s):
d = sorted(s.iteritems(),key=lambda t:t[1],reverse=False)
return d

d = fun(s)
print diteritems() 得到的[(键,值)]的列表, 通过sorted方法,指定排序的键值key是原来字典中的value属性,其中用到了匿名函数lambda, 参数为t列表,返回第二个元素t[1],也就是每个键值对中的value,  从小到大排序时 reverse=False,从大到小排序是True!
全部回答
key参数代表排序的依据值,第三句的意思是取得字典的所有键值保存在数组,对这个列表排序(排序依据是列表元素作为字典d的键时的值时字典的值),返回这个列表。
根据值寻找键只能遍历一次字典了。
sorted函数原型:
sorted(iterable[, cmp[,
key[, reverse]]])
这里只用了第一个和第三个参数。
第一个参数就是原列表,若只有这一个参数的话默认按照字典的关键字(键)来排序,这样会得到:
['a', 'b', 'c', 'd', 'e', 'f']
第三个参数说明如下:
key specifies a function of one argument that is used to extract a
comparison key from each list element. 就是说,需要指定只有一个参数的函数,用于排序比较。
lambda 是匿名函数,lambda后跟的k即为函数参数,d[k]是函数返回值。
匿名函数,顾名思义,没有函数名。
这个lambda匿名函数的作用就是将 d[k] 即关键字的值作为排序的依据。
这个代码就是根据值的大小排序键的方法。

第三句是sorted函数的特殊用法:根据键值排列字典,百度python sorted就知道了
如果是我则会这样写:>>> d = {'a': 7, 'c': 4, 'b': 3, 'd': 4, 'f': 6, 'e': 1}
>>> t = sorted([(v, k) for k, v in d.items()])
>>> print([k for v, k in t])
['e', 'b', 'c', 'd', 'f', 'a']
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
锂聚合物电池需要激活吗
【复习的英文】整理与复习的英文单词是什么?
汽车AC系统具体是什么意思,大家对此有了解吗
去年毕业后档案转入家里人才市场,现在考进了
水果蒙牛地址有知道的么?有点事想过去
阅读下列材料:戊戌变法后,康有为 “八年于
农村信用合作社三凤分社在什么地方啊,我要过
为什么现在都选用水性环氧材料
赛尔号怎么改精灵模样
绿色水果地址在什么地方,想过去办事
为什么在贴吧发不了帖
【toothache怎么读】toothache怎么念啊
今天吃饭见了一个车 是一个大写B一个圆圈里一
985大学车辆工程研究生,毕业后有哪些好去向
金泰克 s520 128g ssd是打磨芯片吗
推荐资讯
张勇汽配汽修地址有知道的么?有点事想过去
“闺蜜”用英语怎么说?
一哥品茶坊地址好找么,我有些事要过去
我现在打算在大专学习审计专业,不知以后就业
zppo火机棉芯怎么换?
三毛文具在哪里啊,我有事要去这个地方
眉山京蓉汽车配件经营部地址在什么地方,想过
雅阁车载aux在哪里插?
光影魔术手加了水印输出后图片KB变小了啊
真爱生命,远离摩羯!这句话的由来
我养仙人球变小了怎么回事?
一知己茶書社地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?