導航:首頁 > 編程語言 > python字典按value排序

python字典按value排序

發布時間:2023-04-29 09:28:07

python字典怎麼排序

python字典怎麼排序?
定義一個字典類型
mydict = {2: '小路', 3: '黎明', 1: '郭富城', 4:'周董'}
可分別列印 key和value 看一下數據
按KEY排序,使用了 lambda和 reverse= False(正序)
key和value都輸出
reverse= True(逆序)
按value排序,漢字次序不是按拼音輸出
sorted並不改變字典本身的數據次序。
輸出後為列表和元組
可以 A = sorted(mydict.items(),key = lambda mydict:mydict[1],reverse= False) 賦值給A ,A的次序是變化後的
推薦:《Python教程》
注意事項
sorted並不改變字典本身的數據次序
如果要變化後的 可以賦值給另一個列表變數以上就是小編分享的關於python字典怎麼排序的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

② python用字典統計不同字元的個數

這里用到了字典基本的建立,value調用,鍵值對增加,value修改,以及items()函數。

編程實現
流程:文件遍歷-除去空白——判斷字典中有無該字元——有則Value加1,無則新建為1—備櫻—按Value排序並返回

具體實現代碼如下:

#統計txt文件中的字元頻率
def countwords(txt):
stat = {}#建立字典存儲存儲字元和對應頻率
for line in txt:
line = line.strip()
if len(line) == 0:
continue
for i in range(len(line)):
#判知滾答斷有無該字元的鍵
if(line[i] in stat):
stat[line[i]]+=1
else:
stat[line[i]]=1
result=sorted(stat.items(),key = lambda x:x[1],reverse = True)#按value大小排序
return result
xyj = open('xyj.txt' ,'r',encoding = 'utf-8')#讀文件
r=countwords(xyj)#調用函搭慧數
xyj.close

③ 問一個關於python的字典輸出時候默認排序問題

dict的特點就是存儲的key-value序對是沒有順序的!這和list不一樣,它在內存中存儲是無序的

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

給你看看這個字典 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素沒有順序,所以dic[0]是有語法錯誤的。並且不可以有重復的鍵值,所以 dic.add['c'] = 4後,字典變成 {'a':1 , 'b':2 , 'c': 4}.現思考如下:如何根據需要可以根據「鍵」或「鍵值」進行不同順序的排序?函數原型:sorted(dic,value,reverse)解釋:dic為比較函數,value 為排序的對象(這里指鍵或鍵值), reverse:註明升序還是降序,True--降序,False--升序(默認)案例:dic = {'a':1 , 'b':2 , 'c': 3}1.print sorted(dic.iteritems(), key = lambda asd:asd[0] ,reverse = True)#結果:[('c', 3), ('b', 2), ('a', 1)]2.print sorted(dic.iteritems(), key = lambda asd:asd[0] )#結果:[('a', 1), ('b', 2), ('c', 3)] ,默認(升序)3.print sorted(dic.iteritems(), key = lambda asd:asd[1] )#結果:[('a', 1), ('b', 2), ('c', 3)]這里介紹兩個函數:1.lambda案例:fuc = lambda x:x+ 2print fuc(3) #結果5,意思對於x ,返回 x + 22.iteritems()案例:dic = {'a':1 , 'b':2 , 'c': 3}print dic.iteritems() # 返回字典鍵-值對的一個迭代器在函數sorted(dic.iteritems(), key = lambda asd:asd[1])中,第一個參數傳給第二個參數「鍵-鍵值」,第二個參數取出其中的鍵(【0】)或鍵值(【1】)

⑤ 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字典如何根據key比較value

1.sorted函數
首先介紹sorted函數,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個參數。
其中iterable表示可以迭代的對象,例如可以是dict.items()、dict.keys()等,key是一個函數,用來選取參與比較的元素,reverse則是用來指定排序是倒序還是順序,reverse=true則是倒序(從大到小),reverse=false則是順序(從小到大),默認是reverse=false。
2.按照key排序
要對字典按照key排序,可以直接調用sorted函數。
my_dict = {'lilee':25, 'age':24, 'phone':12}
sorted(my_dict.keys())
輸出結果為

['age', 'lilee', 'phone']

直接使用sorted(my_dict.keys())就能按key值對字典排序,這里是按照順序對key值進行排序的,如果想按照倒序排序的話,只需要將reverse置為true即可。
sorted(my_dcit.keys(), reverse = true)

3.按照value值排序
共有三種方法可以實現將字典按照value值進行排序
(1)key使用lambda匿名函數取value進行排序
d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19}
sorted(d.items(), key=lambda item:item[1])
輸出結果為

[('age',19),('wangyan',21),('lilee',25),('liqun',32)]
如果需要倒序則

sorted(d.items(), key=lambda item:item[1], reverse=True)
得到的結果就會是

[('liqun',32),('lilee',25),('wangyan',21),('age',19)](2)使用operator的itemgetter進行排序
import operator
sorted(d.items(), key=operator.itemgetter(1))
輸出結果為
[('age',19),('wangyan',21),('lilee',25),('liqun',32)]

(3)將key和value分裝成元組,再進行排序
f = zip(d.keys(), d.values())
c = sorted(f)
輸出結果為
[('age',19),('wangyan',21),('lilee',25),('liqun',32)]

4.取出排序的前n個value值和key值
可以按照如下操作:
before = {"key1": 5,"key2": 6,"key3": 4,"key4": 3,
}# 排序after = dict(sorted(before.items(), key=lambda e: e[1]))print(after)
# 取出前幾個, 也可以在sorted返回的list中取前幾個
required_cnt = 2cnt = 0
for key, value in after.items():
cnt += 1if cnt > required_cnt:breakprint("{}:{}".format(key, value))

⑦ 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,value核首逗inafter.items():
cnt+=1
ifcnt>required_cnt:
芹旦break
print("{}:{}".format(key,value))

⑧ 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排序相關的資料

熱點內容
單片機的反向編譯 瀏覽:459
subsample演算法 瀏覽:895
蘋果免費看書app哪個最好 瀏覽:881
c語言加密怎麼弄 瀏覽:838
c語言編譯的錯誤提示 瀏覽:765
驗機蘋果app哪個最好 瀏覽:664
光遇國際服安卓如何購買禮包 瀏覽:53
163app怎麼下載 瀏覽:245
電腦程序員下場 瀏覽:43
編譯原理ll1文法判斷 瀏覽:725
qt用vs2015編譯 瀏覽:549
結婚日子最好的演算法 瀏覽:792
安卓怎麼把數據傳到蘋果里 瀏覽:502
編譯器標識 瀏覽:790
編程珠璣第三章 瀏覽:783
windows如何開啟tftp伺服器 瀏覽:108
歐姆龍plc編程指令表 瀏覽:187
程序員遠程收入不穩定 瀏覽:861
演算法原理怎麼寫 瀏覽:470
有個動漫女主藍頭發是程序員 瀏覽:999