求python 字典 中根据值的大小,按顺序排列键的方法
答案:4 悬赏:10 手机版
解决时间 2021-02-13 10:28
- 提问者网友:蓝莓格格巫
- 2021-02-12 13:25
求python 字典 中根据值的大小,按顺序排列键的方法
最佳答案
- 五星知识达人网友:平生事
- 2021-02-12 14:55
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!
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!
全部回答
- 1楼网友:第四晚心情
- 2021-02-12 17:16
key参数代表排序的依据值,第三句的意思是取得字典的所有键值保存在数组,对这个列表排序(排序依据是列表元素作为字典d的键时的值时字典的值),返回这个列表。
根据值寻找键只能遍历一次字典了。
根据值寻找键只能遍历一次字典了。
- 2楼网友:佘樂
- 2021-02-12 16:32
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(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] 即关键字的值作为排序的依据。
这个代码就是根据值的大小排序键的方法。
- 3楼网友:酒醒三更
- 2021-02-12 15:58
第三句是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']
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯