Python字典嵌套字典排序,该怎么处理?

Python011

Python字典嵌套字典排序,该怎么处理?,第1张

感觉这个需求有些许问题,因为通常对比排序的都是同一类型的数据,譬如aaa代表是年龄,bbb代表的是工资,等等... 所以不会拿自己的年龄和工资作一次排序。

#  要做的话,可以手动给它并成一个新列‘sort_key’。 obj就是你最外层的a,免得同名混淆

for i in obj:

obj[i]['sort_key'] = obj[i].values()[0]

#  目的是构造出这样的结构:

#  ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)

print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))

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教程请关注环球青藤其它相关文章!

字典就是包含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"]))