fnhp.net
当前位置:首页 >> python字典中一键多值排序 >>

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

sorted函数原型:sorted(iterable[, cmp[, key[, reverse]]]) 这里只用了第一个和第三个参数.第一个参数就是原列表,若只有这一个参数的话默认按照字典的关键字(键)来排序,这样会得到:['a', 'b', 'c', 'd', 'e', 'f'] 第三个参数说明如下:key

最为简单的方法是利用表理解,生成一个新的字典 必须要保证键值是一一对应的 d = {'one':1, 'two':2, 'three':3, 'four':4}di = {v:k for k,v in d.items()}di[1]

python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1 下面的是按照value的值从大到小的顺序来排序.dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0} dict=

是的,从接口上和实现上,python的dict都算是一种hashmap.

下面的是按照value的值从大到小的顺序来排序.dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)print dict输出的结果:[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]下面我们分

你好!d = {'a': 3, 'c': 4, 'b': 3, 'd': 2, 'f': 4, 'e': 2} result = {} keys = sorted(d, key=lambda k: d[k]) print d print keys for k in keys: result[k]=d[k] print result 如果对你有帮助,望采纳.

暂时只能想到这样的,结果是排序后的键列表.d = {'a': 3, 'c': 4, 'b': 3, 'd': 2, 'f': 4, 'e': 2} result = [] keys = sorted(d, key=lambda k: d[k]) for k in keys: if not result: result.append(k) elif d[k] == d[result[-1]] and k result.insert(len(result) - 1, k) else: result.append(k) print result

>>> d {'a': 1, 'world': 11, 'z': 9, 'hello': 10}>>> k=d.keys()>>> k.sort()>>> k ['a', 'hello', 'world', 'z']>>> t=map(lambda key:(key,d[key]),k)>>> t [('a', 1), ('hello', 10), ('world', 11), ('z', 9)]

before = { "key1": 5, "key2": 6, "key3": 4, "key4": 3,}# 排序 after = dict(sorted(before.items(), key=lambda e: e[1])) print(after)# 取出前几个, 也可以在sorted返回的list中取前几个 cnt = 0 for key, value in after.items(): cnt += 1 if cnt > required_cnt: break print("{}:{}".format(key, value))

网站首页 | 网站地图
All rights reserved Powered by www.fnhp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com