python字典按key排序
Ⅰ python 字典排序
dict_a={0:5,1:4,2:5,3:4,4:2,5:2,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:4,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:2,24:3,25:2,26:0,27:1,28:1,29:0,30:2,31:3,32:3,33:3}
dict_b=sorted(dict_a.iteritems(),key=lambdad:d[1],reverse=True)
printdict_a
printdict_b
foriinrange(5):
printdict_b[i][0]
Ⅱ 想问下python字典排序怎么才能先按照值大
s={"a":"bb","b":"cc","c":"aa"}
deffun(s):
d=sorted(s.iteritems(),key=lambdat:t[1],reverse=False)
returnd
败滑带
d=fun(s)
printd
iteritems() 得到的[(键,值)]的列表, 通过sorted方法,指定排序的键值key是原来字典中的value属性,其察芦中用到了匿名函数lambda, 参数为t列表,返回第二个元素t[1],也就是每个键值对中的value, 从小到大排序时让弯 reverse=False,从大到小排序是True!
Ⅲ python中字典如何按照value值排序,并分别取出前n个value值和key值
before={
"key1":5,
"key2":6,
"key3":4,
"key4":3,
}
#排序
after=dict(sorted(before.items(),key=lambdae:e[1]))
print(after)
#取出前几个,也可以在sorted返回的list中取前几个
cnt=0
forkey,valueinafter.items():
cnt+=1
ifcnt>required_cnt:
break
print("{}:{}".format(key,value))
Ⅳ 求助:python元组作为字典的key的排序问题
disks_info=[{u'diskname':u'/dev/vda',u'disktype':u'HDD',u'tag':[u'mounted',u'boot'],u'slotnum':None,u'rpm':7200,u'size':50},{u'diskname':u'/dev/vdb',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdc',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdd',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vde',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdf',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30}]
disks_info_sorted=sorted(disks_info,key=lambdax:x[u'size'],reverse=True)
print(disks_info_sorted)
Ⅳ Python字典如何排序啊,给例子谢谢
在Python2.7.x版本中, collections类增加了OrderedDict, 用法如下:
在Python2.7.x版本中, collections类增加了OrderedDict, 用法如下:
pywugw@pywugw-laptop:~$ /usr/local/bin/python2.7
Python 2.7b1 (r27b1:79927, Apr 26 2010, 11:44:19)
[GCC 4.4.3] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> from collections import OrderedDict
>>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
#按key排序
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
#按value排序
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
#按key的长度排序
>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])
Ⅵ Python中如何以dict的key排序输出
#输出的顺序却不是我们预想的那样初始化的顺序,查询相关文献得知,Python保证遍##历字典内所有元素,但不容保证遍历的顺序,假如我们期望按预先的顺序进行遍历的话,#我目前找到一个办法,就是通过两个List分别存储Key和Value,然后通过zip合并为Dic#tionary,再遍历:
#通过zip方法合并两个List为Dictionary
#遍历会按原先的顺序
keys=["b","a","c","e","d"]
values=["2","1","3","5","4"]
forkey,valueinzip(keys,values):
print(key,value)
#--OUTPUT--
#b2
#a1
#c3
#e5
#d4
Ⅶ python字典中根据值的大小,按顺序排列键有什么方法
s={"a":"bb","b":"cc","c":"aa"}
deffun(s):
d=sorted(s.iteritems(),key=lambdat:t[1],reverse=False)
returnd
d=fun(s)
printd
iteritems() 得到的[(键,值)]的列表, 通过sorted方法,指定排序的键值key是原来字典中的value属性,其中用到了匿名函数lambda, 参数为t列表,返回第二个元素t[1],也就是每个键值对中的value, 从小到大排序时 reverse=False,从大到小排序是True!
Ⅷ python 字典排序 字典序排序是什么意思
字典就是包含key:value对的集合
比如
L = [{"name": "zhangsan", "birth":19920208, "gender":"m"}, {"name": "lisi", "birth":19900609, "gender":"m"}, {"name": "wanghong", "birth":19950907, "gender":"f"}]
对字典排序就是对列表进行排序后打印:
from operator import itemgetter
L = sorted(L,key=itemgetter('birth'),reverse=True)
for i in range(0,len(L)):
... print("Name: {:10} Gender: {:2} Birth: {}".format(L[i]["name"],L[i]["gender"],L[i]["birth"]))
Ⅸ Python中字典按照指定列表的顺序排列
roles=["OWNER","RCOM","HRGDL2","HRM","HRH","MP","HP","VP","GM"]
info={"VP":"80003","HRM":"F140019","MP":"F130008","HRGDL2":"F140390","OWNER":"F133255","RCOM":"F900151","GM":"00903","HP":"80355","HRH":"81453"}
sorted_dict=map(lambdax:{x:info[x]},roles)
print(sorted_dict)
Ⅹ python 字典排序问题 有如下字典,怎么通过key最后面的数字排序,求大神指教。
python中字典存储是无序的,不像元组或列表那样需要通过顺序来取值。字典存储类型为key/value、一个键一个值,取值需要key,获取key用值。没明白你说的“通过key最后面的数字排序”是什么意思,详细描述一下需求