python对字典值排序
⑴ 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字典有多个值的排序
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!
⑶ 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 字典排序 字典序排序是什么意思
字典就是包含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字典排序怎么才能先按照值大
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 字典 中根据值的大小,按顺序排列键的方法
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] 即关键字的值作为排序的依据。
这个代码就是根据值的大小排序键的方法。
⑺ python 字典排序
字典是无序的,兄弟内
你看嘛容:
>>>testmap={123:['aaa',5],234:['bbb',2],345:['ccc',3],456:['ddd',1]}
>>>printtestmap
{456:['ddd',1],345:['ccc',3],234:['bbb',2],123:['aaa',5]}
>>>testmap={456:['ddd',1],234:['bbb',2],345:['ccc',3],123:['aaa',5]}
>>>printtestmap
{456:['ddd',1],345:['ccc',3],234:['bbb',2],123:['aaa',5]}
>>>
⑻ python中字典能排序吗
字典本身就是无序的,也就不存在排序。
但是可以参照键、值,就行排序输出元组列表,
例如图中例子
⑼ 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当中字典值排序的问题
#!/usr/bin/envpython
#coding:utf-8
#
#author:TimWang
#date:Nov.,2014
#filename:/qa3.py
"""以下代码仅提供扩展参考的方法,在2.7版本下可运行。"""
importre
defparser(dataserial,patt,keyname,*evalattrs):
"""对给定的dataserial数据序列,用进行正则解析
对指定的evalattrs进行值转换,
以其中的keyname为字典键值,
"""
collector={}
formatchedinfilter(None,map(patt.match,dataserial)):
data=matched.groupdict()
forattrinevalattrs:
data[attr]=eval(data[attr])
collector[data.get(keyname)]=data
returncollector
defiterdictsort(dictdatas,sortattr):
forvinsorted(dictdatas.values(),
key=lambdav:v.get(sortattr)):
yieldv
context=u"""
广州2014-11-22苹果996
深圳2014-11-23香蕉1075
杭州2014-11-24番茄543
北京2014-11-25橘子824
"""
patt=re.compile(r"""^
(?P<locale>S+)
s+
(?P<date>S+)
s+
(?P<proct>S+)
s+
(?P<qty>d+)
s+
(?P<amount>d+)
s*$""",re.I|re.U|re.X)
fmt=u"{locale}{date}{qty:4}{amount:8}"
datas=parser(context.splitlines(),patt,"locale","qty","amount")
print"="*32
print" ".join(fmt.format(**data)
fordatainiterdictsort(datas,'qty'))
print"="*32
print" ".join(fmt.format(**data)
fordatainiterdictsort(datas,'amount'))