python3记录--字典排序

一.引入

在对一个结构为

item={A:[{B:[a,b,c]},{C:[d,e,f]},{D:‘h’}]}

字典进行排序时,我陷入了纠结。这是一个字典,A中有三个列表,分别是BCD,B、C又是另外的列表,存储着a、b、c和d、e、f等元素,而D中存放着h字符串,item由不同的A构成。我想根据B列表的长度对item进行降序排列

二.解决

因为字典里嵌套着列表,列表中又包含着字典,字典中还有列表,如此套娃,把我搞了。
在此第一时间就想到了字典的.sorted()函数,它是这么用的:
sorted(可迭代对象,key=函数名,reverse=True/False)
可以先写个雏形:

sorted_result = sorted(item.items(),key=lambda x:x[1],reverse=True)

(1)将item拆解,因为要根据值排序,所以要先取到“值”,这个简单,直接用[1]就能取到所有的值。
(2)取B所在的字典:B是A列表的第一项,根据索引[0]能够定位到B字典。
(3)取B中列表:这个也不难,使用.get(‘B’)即可。
这样就把item拆成了三部分,现在组合起来:

sorted_result = sorted(item.items(),key=lambda x:len(x[1][0].get('B')),reverse=True)

这样就实现了根据B列表长度降序排列。

三.总结

遇到问题不要慌,CSDN把你帮,解决问题过程中参考了大佬的

在Python中,字典按值排序


收获良多, 感谢!

猜你喜欢

转载自blog.csdn.net/a1397852386/article/details/116639348
今日推荐