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) #按照字典的值进行排序,当字典值也是字典时, 这时候会优先按照键名排序, 再按照键值排序. 

你可能感兴趣的:(python基础)