Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按最深值对嵌套字典python 2.7进行排序,返回键元组_Python_Sorting_Dictionary_Python 2.7 - Fatal编程技术网

按最深值对嵌套字典python 2.7进行排序,返回键元组

按最深值对嵌套字典python 2.7进行排序,返回键元组,python,sorting,dictionary,python-2.7,Python,Sorting,Dictionary,Python 2.7,我有一本这样的字典: d = {11:{'a':2.1, 'b':2.2,'c':3.0}, 12:{'b':4.5,'g':1.2}, 4:{'g':5.6,'a':4.5,'f':0.5,'r':1.3} } 我想得到的是: [(4,'g'),(4,'a'),(12,'b'),(11,'c'),(11,'b'),(11,'a'),(4,'r'),(12,'g'),(4,'f')] 所以我想做的是按降序对值进行排序,得到字典键,实现这个顺序 我想使用key=lambd

我有一本这样的字典:

d = {11:{'a':2.1, 'b':2.2,'c':3.0},
     12:{'b':4.5,'g':1.2},
     4:{'g':5.6,'a':4.5,'f':0.5,'r':1.3}
}
我想得到的是:

 [(4,'g'),(4,'a'),(12,'b'),(11,'c'),(11,'b'),(11,'a'),(4,'r'),(12,'g'),(4,'f')]
所以我想做的是按降序对值进行排序,得到字典键,实现这个顺序

我想使用
key=lambda x,y:d[x][y]
一些东西,但我不知道如何返回我想要的列表。

这应该可以:

sorted(((k1, k2) for k1 in d for k2 in d[k1]), key=lambda t: d[t[0]][t[1]], reverse=True)
生成器表达式首先列出值的所有键“路径”,然后根据值对这些键“路径”进行排序,并反转

演示:


非常感谢你!就这样!
>>> sorted(((k1, k2) for k1 in d for k2 in d[k1]), key=lambda t: d[t[0]][t[1]], reverse=True)
[(4, 'g'), (4, 'a'), (12, 'b'), (11, 'c'), (11, 'b'), (11, 'a'), (4, 'r'), (12, 'g'), (4, 'f')]