python3字典的排序問題


python3字典的排序問題

參考博客鏈接 :https://blog.csdn.net/ustbbsy/article/details/796

字典有兩個參數,key, value,下面所描述,鍵:key,值:value , 鍵值對: items

創建一個字典

dic={'a':26,'g':20,'e':20,'c':24}

1.字典的取值

dic = {'a':26,'g':20,'e':20,'c':24}
print(dic.keys())     
print(dic.values())   
print(dic.items())  
​
# dict_keys(['a', 'g', 'e', 'c'])
# dict_values([26, 20, 20, 24])
# dict_items([('a', 26), ('g', 20), ('e', 20), ('c', 24)])
  • 可以看出,dic.items() 返回的結果是元組組成的列表

  • 也就是說,通過dict1.items()這個函數,把字典形式的鍵、值,存在了一個元組內。

2.字典的排序

2.1 sorted

dic = {'a':26,'g':20,'e':20,'c':24}
​
new_dic = sorted(dic)
print(new_dic)    # ['a','c','e','g']
  • 可得出 sorted()默認是對字典的鍵從小到大進行排序

2.2 對鍵反向排序

#方式一
dic = {'a':26,'g':20,'e':20,'c':24}
​
new_dic = sorted(dic,reverse=True)
print(new_dic)
​
#方式二:我們也可以先拿到所有的key,然后再對key排序
dic = {'a':26,'g':20,'e':20,'c':24}
​
new_dic = sorted(dic.keys(),reverse=True)
print(new_dic)    #['g','e','c','a']

2.3對值排序

dic = {'a':26,'g':20,'e':20,'c':24}
​
new_dic = sorted(dic.values())
print(new_dic)     # [20,20,24,26]

2.4 lambda表達式

g = lambda x:x+1
print(g(1))    #2
print(g(3))    #4
當然,你也可以這樣使用:
    lambda x:x+1(1)
上例的代碼x為入口參數,x+1為函數體,用函數來表示為:
def g(x):
    return x+1  

2.5另一種方式的排序

dic = {'a':26,'g':20,'e':20,'c':24}
print(dic.items())     # dict_items([('a', 26), ('g', 20), ('e', 20), ('c', 24)])
​
new_dic = sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(new_dic)         # [('a', 26), ('c', 24), ('g', 20), ('e', 20)]

3.itemgetter

from operator import itemgetter
d = {"a":8,"b":4,"c":12}
print(sorted(d.items(),key=itemgetter(0),reverse=True))    #itemgetter(0),獲取key
print(sorted(d.items(),key=itemgetter(1),reverse=True))    #itemgetter(1),獲取value
#結果
# [('c',12),('b',4),('a',8)]
# [('c',12),('a',8),('b',4)]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM