python 对字典分别按照key值、value值进行排序
1.sorted函数 其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小),reverse=false则是顺序(从小到大),默认是reverse=false。 2.按照key排序 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值排序 (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),(‘age‘,19)] (2)使用operator的itemgetter进行排序 import operator sorted(d.items(),key=operator.itemgetter(1)) 输出结果为 [(‘age‘,32)] (3)将key和value分装成元组,再进行排序 f = zip(d.keys(),d.values()) c = sorted(f) 输出结果为 [(‘age‘,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 = 2 cnt = 0 for key,value in after.items(): cnt += 1 if cnt > required_cnt: break print("{}:{}".format(key,value)) --------------------- 原文:https://blog.csdn.net/laobai1015/article/details/85114570 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |