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'))