python字典,列表嵌套的排序

字典的排序

1.按照字典的鍵值(value)排序

rdict = {'業務諮詢':1,'需求收集':3,'資源申請':0,'故障申報':0,'投訴建議':8}
res_dict = sorted(rdict.items(),key=lambda d:d[1], reverse=True)
print(res_dict)

2.按照字典的鍵名(key)排序

rdict = {'業務諮詢':1,'需求收集':3,'資源申請':0,'故障申報':0,'投訴建議':8}
res_dict = sorted(rdict.items(),key=lambda d:d[0], reverse=True)
print(res_dict)#中文是按照utf-8編碼的字符進行排序,英文就是按照字母的先後順序進行排序

3. 字典嵌套列表, 按照字典鍵名(key)排序

a = {'a': [1, 3], 'c': [3, 4], 'b': [0, 2], 'd': [2, 1]}
b = sorted(a.items(), key=lambda x: x[1][0], reverse=True)
print(b) #如果按照列表裏的其他元素進行排序,只需要進行修改下標

列表的嵌套排序

1. 列表排序

a = ['USA', 'China', 'Canada', 'Russia']
a.sort(reverse=True)
print(a)

2.列表嵌套的排序

data = [['ERP人資', 5, 5, 0, 0], ['ERP財務', 963, 950, 0, 0], ['ISS2', 1, 1, 0, 0], ['OA郵件', 34, 34, 0, 0],
        ['網絡大學', 5, 5, 0, 0], ['營銷業務應用系統', 12, 12, 0, 0], ['調度生產管理系統(OMS)', 8, 8, 0, 0],
        ['財務管控', 127, 122, 0, 0]]
data.sort(key=lambda data:data[1], reverse=True)
print(data)#按照子列表的下標進行排序,要對哪一個元素進行排序,只需要改變下標索引

3.列表嵌套字典的排序

a = [{'letter': 'b'}, {'letter': 'c'}, {'letter': 'd'}, {'letter': 'a'}]
a.sort(key=lambda x: x['letter'], reverse=True)
print(a) #按照字典的值進行排序,當字典值也是字典時, 這時候會優先按照鍵名排序, 再按照鍵值排序. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章