❶ 關於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'))

❷ 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字典如何排序啊,給例子謝謝

在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將數組里的數從高到低排序

1、首先我們定來義一個列表輸入自一串大小不一的數字。

❺ 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對字典排序,代碼如下。

tag_sorted = sorted(tag_count.iteritems(),key = operator.itemgetter(1),reverse = True)
# tag_sorted是個列表

eg.
>>> adict = dict([(x, 10+x) for x in xrange(10)])
>>> adict
{0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19}
>>> sorted(adict.iteritems())
[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)]
>>>

對於列表是沒有.iteritems()方法的;後續代碼可以調整為:
for i,(k,v) in enumerate(tag_sorted):
print("%d %d %d"%(k,v,i))

❼ python 中的字典怎麼排序,怎麼按照添加的順序顯示

其實在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字典中根據值的大小,按順序排列鍵有什麼方法

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怎麼對字典進行排序

python 字典(dict)的特點就是無序的,按照鍵(key)來提取相應值(value),如果我們需要字典按值排序的話,那可以用下面的方法來進行:

1 下面的是按照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)]

下面我們分解下代碼
print dic.iteritems() 得到[(鍵,值)]的列表。
然後用sorted方法,通過key這個參數,指定排序是按照value,也就是第一個元素d[1的值來排序。reverse = True表示是需要翻轉的,默認是從小到大,翻轉的話,那就是從大到小。

2 對字典按鍵(key)排序:
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) d[0]表示字典的鍵
print dict

❿ 想問下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!