『壹』 python中字典能排序嗎

字典本身就是無序的,也就不存在排序。

但是可以參照鍵、值,就行排序輸出元組列表,

例如圖中例子

『貳』 python怎麼實現數組排序

#合成一個字典來
ab=dict(zip(a,b))
#根據源字典的鍵進行排序(也就是第一個列表);也可以根據第二個列表進行排序。
#具體是升序還是降序,自己挑著來。
ab_order=sorted(ab.items(),key=lambdax:x[0],reverse=
False)

『叄』 求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 中的字典怎麼排序,怎麼按照添加的順序顯示

其實在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當中字典值排序的問題

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

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 元組中有字典,如何對其進行排序謝謝。

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 不使用lambda函數 讓字典根據值的大小給鍵排序的方法

tl=d.items()

deffuc():

foriinrange(len(tl)):

forjinrange(i+1,len(tl)):

iftl[i][1]>tl[j][1]:

tmp=tl[j]

tl[j]=tl[i]

tl[i]=tmp

returntl


fuc()

#注意縮進,我這個是貼進來的

出來的結果和lambda一樣,都是返回的可遍歷的元祖數組

還是截個圖吧。。。

『玖』 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))

『拾』 python3 字典排序問題

字典只是說沒有順序,沒說一定各種順序呀。