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

在网上找到这样一种方法d={'a':7,'c':4,'b':3,'d':4,'f':6,'e':1}result=[]keys=sorted(d,key=lambdak:... 在网上找到这样一种方法
d = {'a': 7, 'c': 4, 'b': 3, 'd': 4, 'f': 6, 'e': 1}
result = []
keys = sorted(d, key= lambda k: d[k])
print(keys)
但是不明白第三句话的意义,求大神解释一下。同时求一下根据值的大小寻找键的方法。
展开
 我来答
百度网友834a0a1e3
推荐于2016-07-22 · TA获得超过835个赞
知道小有建树答主
回答量:1031
采纳率:62%
帮助的人:162万
展开全部
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 d

iteritems() 得到的[(键,值)]的列表, 通过sorted方法,指定排序的键值key是原来字典中的value属性,其中用到了匿名函数lambda, 参数为t列表,返回第二个元素t[1],也就是每个键值对中的value,  从小到大排序时 reverse=False,从大到小排序是True!

waketzheng
推荐于2018-02-27 · TA获得超过644个赞
知道小有建树答主
回答量:566
采纳率:63%
帮助的人:149万
展开全部

第三句是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']
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中了十次月读
2014-12-24 · 超过24用户采纳过TA的回答
知道答主
回答量:119
采纳率:100%
帮助的人:45.6万
展开全部
key参数代表排序的依据值,第三句的意思是取得字典的所有键值保存在数组,对这个列表排序(排序依据是列表元素作为字典d的键时的值时字典的值),返回这个列表。
根据值寻找键只能遍历一次字典了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5311d79
推荐于2017-11-27 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3200万
展开全部
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] 即关键字的值作为排序的依据。

这个代码就是根据值的大小排序键的方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式